laravel 中两个表之间的关系错误
Error in relationships between two tables in laravel
我正在开发一个 e-commerce 项目,其中我有以下 tables,
1.产品 table :
- ID(整数)
- 标题(字符串)
- 织物(无符号整数)
- created_at(时间戳)
- 我在迁移中也使用了下面的代码。
$table->foreign('fabric')->references('id')->on('fabrics');
2。面料 Table
ID(整数)
标题(字符串)
我的模型是:
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 }}
然而,returns
Object of class Illuminate\Database\Eloquent\Relations\HasOne could
not be converted to string
首先,我假设您已经在 fabric
模型中使用 title
定义了 $fillable
数组
你应该更换
{{ $product->fabric()->title }}
来自
@isset($product->fabric)
{{ $product->fabric->title }}
@endisset
您应该将 {{ $product->fabric()->title }}
替换为 {{ $product->fabric->title }}
或
可以替换成$product->fabric()->get()->title;
您对原始代码行所做的是尝试打印出 关系,而不是返回的对象。
不能对 属性 使用 同名 以及我在那里所做的功能,我正在使用 fabric 对于函数以及 属性.
所以我将 table 列从 fabric 更改为 fabric_id.
有效!
我正在开发一个 e-commerce 项目,其中我有以下 tables,
1.产品 table :
- ID(整数)
- 标题(字符串)
- 织物(无符号整数)
- created_at(时间戳)
- 我在迁移中也使用了下面的代码。
$table->foreign('fabric')->references('id')->on('fabrics');
2。面料 Table
ID(整数)
标题(字符串)
我的模型是:
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 }}
然而,returns
Object of class Illuminate\Database\Eloquent\Relations\HasOne could not be converted to string
首先,我假设您已经在 fabric
模型中使用 title
定义了 $fillable
数组
你应该更换
{{ $product->fabric()->title }}
来自
@isset($product->fabric)
{{ $product->fabric->title }}
@endisset
您应该将 {{ $product->fabric()->title }}
替换为 {{ $product->fabric->title }}
或
可以替换成$product->fabric()->get()->title;
您对原始代码行所做的是尝试打印出 关系,而不是返回的对象。
不能对 属性 使用 同名 以及我在那里所做的功能,我正在使用 fabric 对于函数以及 属性.
所以我将 table 列从 fabric 更改为 fabric_id.
有效!