laravel - 在 Laravel 5.6 中使用 hasOne 检索数据
问题描述
我想知道如何在 laravel 中使用 hasOne 检索数据?例如,我有一个品牌表和一个产品表,其中有一列包含品牌的 id,所以如果一个产品应该有一个品牌“hasOne”,那么这两个表的关系可以完美地工作,但是如果一个产品不一定有品牌,那么当添加产品时,存储在数据库中的品牌ID为0,当我在这条线上提出请求时,laravel给我一个错误。
感谢您的回答。
解决方案
当产品没有品牌时,不加0,进入NULL
数据库。您将需要更改数据库并添加->nullable()
到brand_id
列
此外,它似乎Product
应该belongTo
是Brand
而不是hasOne
您的Product
模型应如下所示:
class Product extends Model {
public function brand() {
return $this->belongsTo(Brand::class);
}
}
和你的Brand
class Brand extends Model {
public function products() {
return $this->hasMany(Product::class);
}
}
然后您可以执行以下操作:
if($product->brand) {
// product has brand
}
else {
// product does not have brand
}
推荐阅读
- c# - Excel 2016 到 Windows 窗体 Visual Studio 2019 社区中的 DataGridView
- c# - 无法加载文件或程序集“Microsoft.mshtml,版本=7.0.3300.0
- spring - 在另一个 bean 中使用来自一个 bean(组件)的方法是否正确?
- amazon-web-services - 在 S3 中访问数据的权限不足
- android - 使用 Android NDK 使用 clang++ 编译 C++ 代码时对“_Unwind_Resume”的未定义引用
- reactjs - 尝试实现全选/取消全选时,ANTD Select mode="multiple" 很慢
- php - MediaWiki 使用 liquipedia 皮肤的内部错误
- c++ - using 声明不能引用类成员
- r - 在R中计算TWI?
- ios - 在 iOS 13 中快速打开与 UiApplication 的链接