在Laravel 5.6中使用hasOne检索数据
我想知道如何在拉威尔与hasOne检索数据? 例如,我有一个品牌表和一个产品表,其中有一列包含该品牌的id,因此,如果一个产品应该有一个品牌“hasOne”,那么这两个表之间的关系就非常完美,但是如果一个产品不一定有品牌,我该怎么办,然后,当添加产品时,存储在数据库中的品牌id为0,当我在这行上发出请求时,laravel会给我一个错误在Laravel 5.6中使用hasOne检索数据,laravel,has-one,Laravel,Has One,我想知道如何在拉威尔与hasOne检索数据? 例如,我有一个品牌表和一个产品表,其中有一列包含该品牌的id,因此,如果一个产品应该有一个品牌“hasOne”,那么这两个表之间的关系就非常完美,但是如果一个产品不一定有品牌,我该怎么办,然后,当添加产品时,存储在数据库中的品牌id为0,当我在这行上发出请求时,laravel会给我一个错误 谢谢您的回答。当产品没有品牌时,不要添加0,而是在数据库中输入NULL。 您需要更改数据库并将->nullable()添加到品牌id列中 而且,它看起来像是产品应
谢谢您的回答。当产品没有品牌时,不要添加0,而是在数据库中输入
NULL
。
您需要更改数据库并将->nullable()
添加到品牌id
列中
而且,它看起来像是产品应该属于品牌而不是hasOne
您的产品
型号应如下所示:
class Product extends Model {
public function brand() {
return $this->belongsTo(Brand::class);
}
}
以及您的品牌
class Brand extends Model {
public function products() {
return $this->hasMany(Product::class);
}
}
然后您可以执行以下操作:
if($product->brand) {
// product has brand
}
else {
// product does not have brand
}
当产品没有品牌时,不要添加0,而是在数据库中输入NULL
。
您需要更改数据库并将->nullable()
添加到品牌id
列中
而且,它看起来像是产品应该属于品牌而不是hasOne
您的产品
型号应如下所示:
class Product extends Model {
public function brand() {
return $this->belongsTo(Brand::class);
}
}
以及您的品牌
class Brand extends Model {
public function products() {
return $this->hasMany(Product::class);
}
}
然后您可以执行以下操作:
if($product->brand) {
// product has brand
}
else {
// product does not have brand
}
在product
表的迁移文件中,确保brand\u id
列添加了nullable()
。在product
表的迁移文件中,确保brand\u id
列添加了nullable()
。谢谢!我已经找到了解决方案:我忘记了在将产品呈现给刀片之前测试产品是否有品牌。谢谢!我已经找到了解决方案:我忘记了在将产品呈现给刀片之前测试它是否有品牌。