laravel 5.5中的关系为null

时间:2017-10-12 05:30:19

标签: php laravel eloquent

我试图在两个表之间建立关系:

我的模特:

class Modele extends Model 
{
 public function shoe()
 {
     return $this->hasMany('Shoe');
 }
}

class Shoe extends Model 
{
  public function modele()
  {
    return $this->belongsTo(Modele::class, 'IdModele','id');
  }
}

我的控制器:

class shoeController extends Controller
{
 public function index()
 {

 $shoesList= \App\Shoe::with('modele')->orderBy('idModele')->get();

 return view('shoe.index',compact('shoesList'));
 }
}
  

当我dd($ shoeList)时,我有这个:

#relations: array:1 [▼
    "modele" => null
  ] 

如果我尝试像这样使用刀片中的参数:

<p>{{$shoe->modele->idGender}}</p>

我有这个错误:

  

抛出错误消息&#34;尝试获取非对象的属性(查看:C:\ laragon \ www \ ipepsShoes2017 \ resources \ views \ shoe \ index.blade.php)

我已经使用相同的方式在这个项目中的表之间建立了其他关系,并且它们正常工作。

我不明白为什么它不起作用。

谢谢。

2 个答案:

答案 0 :(得分:0)

试试这个

class Modele extends Model 
{
 public function shoe()
 {
     return $this->hasMany('App\Shoe');
 }
}

class Shoe extends Model 
{
  public function modele()
  {
    return $this->belongsTo('App\Modele', 'IdModele','id');
  }
}

在您的视图中首先检查{{print_r($ shoe-&gt; modele)}}如果您获得了对象,则调用param您需要的内容

答案 1 :(得分:0)

尝试为hasMany关系写一个外键 Modele 模型:

class Modele extends Model 
{
    public function shoe()
    {
        return $this->hasMany('Shoe', 'IdModele');
    }
}

希望它对你有所帮助:)。