有3个表
Sizes
id
name
Products
id
name
Product_sizes
id
product_id
size_id
我想填充一个id为product_sizes的selectbox和外键连接表大小的名称。
例如:
product_sizes.id 1
sizes.name medium
在产品尺寸中,size_id可以找到介质。 我怎样才能在列表中输入名称值?
我目前拥有什么
我可以用
获得正确的行 $sizes = $product->sizeAvailable()->lists('pr', 'size_id');
其中sizeAvailable是一个返回所选产品的所有product_sizes的关系。
答案 0 :(得分:1)
首先,您不需要数据透视表中的id
字段,因为您可以使用复合键product_id, size_id
唯一标识每一行。 产品可以属于许多尺寸,尺寸可以属于许多产品,因此您不应该' t有重复的行。
每个模型的关系如下:
class Product extends Model {
public function sizeAvailable() {
return $this->belongToMany('Size', 'product_sizes');
}
}
class Size extends Model {
public function products() {
return $this->belongToMany('Product', 'product_sizes');
}
}
最后,在您的视图中,您可以使用Blade功能生成选择框:
<select>
@foreach($product->sizeAvailable() as $size)
<option value="{{ $size->id }}">{{ $size->name }}</option>
@endforeach
</select>