laravel 中两个表之间的关系错误

Error in relationships between two tables in laravel

我正在开发一个 e-commerce 项目,其中我有以下 tables,

1.产品 table :

$table->foreign('fabric')->references('id')->on('fabrics');

2。面料 Table

我的模型是:

    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.

有效!