【问题标题】:relations null in laravel 5.5laravel 5.5 中的关系为空
【发布时间】:2017-10-13 00:30:04
【问题描述】:

我正在尝试在 2 个表之间建立关系:

我的模型:

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>

我有这个错误:

ErrorException 抛出消息“尝试获取非对象的属性(查看:C:\laragon\www\ipepsShoes2017\resources\views\shoe\index.blade.php)

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

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

谢谢。

【问题讨论】:

  • 我不确定,但是在做hasMany的时候,你必须写表名,我不知道那个表是Shoeshoe。你能告诉我们你的表格结构吗?
  • return $this->belongsTo(Modele::class, 'idModele','id');我想我一定是小写字母 nto capse
  • 这是我的表格架构 :photos.app.goo.gl/aGj9ATqhd8qxsMt92 抱歉,我无法上传照片.... Modele 和其他表格上层的关系完美...

标签: php laravel eloquent


【解决方案1】:

试试这个

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->modele)}} 如果你得到对象然后调用你需要的参数

【讨论】:

  • 当我制作 print_r($shoe->modele) 它只打印一个 1 。对于正在工作的其他关系,它会打印所有参数...
  • 只是为了确认,bcs @Hamel 没有解释他修复了什么或为什么它会有所帮助,所以你可能错过了它:@Fred,你的原始代码使用 return $this-&gt;hasMany('Shoe'); 这是不正确的。您需要指定模型,如return $this-&gt;hasMany('\App\Shoe');return $this-&gt;hasMany(Shoe::class);。你解决了吗?
【解决方案2】:

尝试为与 Modele 模型的 hasMany 关系编写 外键

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

希望对你有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 2018-07-11
    • 2018-03-07
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多