Laravel:如何从此数据透视表 table 获取数据?
Laravel: How do I get data from this pivot table?
已解决:下面发布了答案
如何从这个数据透视表和规范中获取值 table?
我想在这样的模板中显示它:
-型号(规格名称table)
--品牌(属性形式枢轴table):example1(来自枢轴table的值)
--模型(属性形式枢轴table):example123(来自枢轴table的值)
...
在 ProductController 中,我尝试返回类似 $product = Product::with('specifications')->first();
的内容,但随后我只能从规格 table 中获取数据,如果我尝试 $product = Product::with('product_specification')->first();
,我会收到错误 Call to undefined relationship [product_specification] on model [App\Product].
枢轴table:
public function up()
{
Schema::create('product_specification', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('product_id')->unsigned()->index();
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
$table->integer('specification_id')->unsigned()->index();
$table->foreign('specification_id')->references('id')->on('specifications')->onDelete('cascade');
$table->string('attribute');
$table->string('value');
});
}
规格table:
public function up()
{
Schema::create('specifications', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('name')->unique();
$table->timestamps();
});
}
产品型号:
public function specifications()
{
return $this->belongsToMany(Specification::class, 'product_specification');
}
我必须将 withPivot() 添加到我的产品模型中
public function specifications() {
return $this->belongsToMany(Specification::class, 'product_specification')->withPivot('attribute', 'value');
}
然后在模板中:
foreach($product->specifications as $specification) {
echo 'name: ' . $specification->name . ' attribute: ' . $specification->pivot->attribute . ' value ' . $specification->pivot->value . '</br>';
}
已解决:下面发布了答案
如何从这个数据透视表和规范中获取值 table?
我想在这样的模板中显示它:
-型号(规格名称table)
--品牌(属性形式枢轴table):example1(来自枢轴table的值)
--模型(属性形式枢轴table):example123(来自枢轴table的值) ...
在 ProductController 中,我尝试返回类似 $product = Product::with('specifications')->first();
的内容,但随后我只能从规格 table 中获取数据,如果我尝试 $product = Product::with('product_specification')->first();
,我会收到错误 Call to undefined relationship [product_specification] on model [App\Product].
枢轴table:
public function up()
{
Schema::create('product_specification', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('product_id')->unsigned()->index();
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
$table->integer('specification_id')->unsigned()->index();
$table->foreign('specification_id')->references('id')->on('specifications')->onDelete('cascade');
$table->string('attribute');
$table->string('value');
});
}
规格table:
public function up()
{
Schema::create('specifications', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('name')->unique();
$table->timestamps();
});
}
产品型号:
public function specifications()
{
return $this->belongsToMany(Specification::class, 'product_specification');
}
我必须将 withPivot() 添加到我的产品模型中
public function specifications() {
return $this->belongsToMany(Specification::class, 'product_specification')->withPivot('attribute', 'value');
}
然后在模板中:
foreach($product->specifications as $specification) {
echo 'name: ' . $specification->name . ' attribute: ' . $specification->pivot->attribute . ' value ' . $specification->pivot->value . '</br>';
}