我正在开发一个电子商务项目,其中有以下表格,
1。产品表:
$table->foreign('fabric')->references('id')->on('fabrics');
2。面料表
ID(int)
标题(字符串)
我的模特是:
class Product extends Model{
public function fabric(){
return $this->hasOne('App\Fabric','id', 'fabric');
}
}
class Fabric extends Model{
public function products(){
return $this->belongsTo('App\Product', 'fabric', 'id');
}
}
我想使用此
查看产品织物 {{ $product->fabric()->title }}
但是,它返回
Illuminate \ Database \ Eloquent \ Relations \ HasOne类的对象可以 不能转换为字符串
答案 0 :(得分:0)
首先,我假设您已使用$fillable
在fabric
模型中定义了title
数组
您应该替换
{{ $product->fabric()->title }}
通过
@isset($product->fabric)
{{ $product->fabric->title }}
@endisset
答案 1 :(得分:0)
您应将{{ $product->fabric()->title }}
替换为{{ $product->fabric->title }}
或
您可以将其替换为$product->fabric()->get()->title;
您使用原始代码行的目的是尝试打印出关系,而不是返回的对象。
答案 2 :(得分:0)
我不能在属性和功能中使用相同的名称,而是在功能和功能中都使用 fabric 。财产。
因此我将表列从 fabric 更改为 fabric_id 。
有效!