Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 恢复与拉拉维尔的雄辩关系_Php_Laravel_Laravel 5_Eloquent - Fatal编程技术网

Php 恢复与拉拉维尔的雄辩关系

Php 恢复与拉拉维尔的雄辩关系,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,当我试图从我的产品中获取类别名称时,我发现在检索结果之前,我必须使用“C”而不是“C”。然而,当我尝试获取供应商名称时,小写的s就可以了。我想知道是什么导致了这种差异。此外,如果I dd($var),则关系字段应为空。我假设它与我的模型中定义的关系有关 Blade.php <td>{{$product->Category->name}}</td> <td>{{$product->salePrice}}</td>

当我试图从我的产品中获取类别名称时,我发现在检索结果之前,我必须使用“C”而不是“C”。然而,当我尝试获取供应商名称时,小写的s就可以了。我想知道是什么导致了这种差异。此外,如果I dd($var),则关系字段应为空。我假设它与我的模型中定义的关系有关

Blade.php

  <td>{{$product->Category->name}}</td>
     <td>{{$product->salePrice}}</td>
     <td>{{$product->stock}}</td>
 <td>{{$product->supplier->company_name}}</td>
Category.php

 public function category()
    {
        return $this->belongsTo('App\Category','category');
    }
 public function supplier()
    {
        return $this->belongsTo('App\Supplier','supplier_id');
    }
public function product()
    {
        return $this->hasMany('App\Product');
    }  
public function product()
    {
        return $this->hasMany('App\Product');
    }
Supplier.php

 public function category()
    {
        return $this->belongsTo('App\Category','category');
    }
 public function supplier()
    {
        return $this->belongsTo('App\Supplier','supplier_id');
    }
public function product()
    {
        return $this->hasMany('App\Product');
    }  
public function product()
    {
        return $this->hasMany('App\Product');
    }

您的产品型号上缺少
\u id

public function category()
{
    return $this->belongsTo('App\Category','category_id');
}
还是空着

public function category()
{
    return $this->belongsTo('App\Category');
}
在您的控制器中

public function index()
{
  $products = Product::all()->with('category');
  return view('your_view', compact('products'));
}

如果您
dd
在您的视图中您将看到,由于

当作为属性访问有说服力的关系时,关系数据是“延迟加载”的。这意味着在您首次访问属性之前,不会实际加载关系数据。然而,在查询父模型时,雄辩者可以“急切地加载”关系

@foreach($products作为$product)
{{$product->category->name}
{{$product->salePrice}
{{$product->stock}
{{$product->供应商->公司名称}
@endforeach

谢谢您的回复,但所引用的列的名称是category而不是category\u id,因此我认为这不是问题所在