我是laravel的初学者,我想建立一个ManyToMany关系.这是我的迁移文件:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->unique();
$table->string('slug')->unique();
$table->text('description');
$table->decimal('price', 10, 2);
$table->string('image')->unique();
$table->timestamps();
});
Schema::create('product_user', function (Blueprint $table) {
$table->increments('id');
$table->integer('number')->unsigned();
$table->integer('product_id')->unsigned()->index();
$table->integer('user_id')->unsigned()->index();
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
这是产品类别
class Product extends Model
{
public $fillable = ['name', 'slug', 'description', 'price', 'image'];
public function users()
{
return $this->belongsToMany('App\Models\User');
}
}
public function products()
{
return $this->belongsToMany('App\Models\Product');
}
我的问题是如何获取字段号?
@foreach($user->products as $product)
Produit : {{ $product->name }} <br/>
Slug : {{ $product->slug }}<br/>
Number : {{ /* how to get this ??? */ }}<br/>
@endforeach
谢谢
解决方法:
您可以使用此:
public function products()
{
return $this->belongsToMany('App\Models\Product')->withPivot('number');
}
并像这样访问:
@foreach($user->products as $product)
Produit : {{ $product->name }} <br/>
Slug : {{ $product->slug }}<br/>
Number : {{ $product->pivot->number }}<br/>
@endforeach
参考文献:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。