php belongsto,php

php belongsto,php

我在Laravel的ORM上遇到了一个乏味的问题.

我有一个具有多个关系的模型,如下所示:

class Pages extends Eloquent {

protected $guarded = array('id','config_id');

public function template()

{

return $this->belongsTo('Templates', 'templates_id');

}

public function updateUser()

{

return $this->belongsTo('Users', 'updated_by');

}

现在,我可以以一种简单的方式访问与模板相关的项目,如下所示:

$this->template->name;

而且它确实有效,因为Laravel的ORM假定它是一对一的关系,并在内部调用first()方法.

但是,当我对updateUser尝试相同时,它失败,返回错误,并说它无法在非对象上调用名称.

但是,如果我尝试这样做:

$this->updateUser()->first()->name;

它有效,但是对我来说不合适.

所以我的问题是,Laravel的ORM如何确定用belongsTo()定义的关系是一对一还是一对多?有没有办法强迫必要的行为?

谢谢

解决方法:

您需要定义关系.您可以在透视图中定义“不同”关系.

-> belongsTo()函数是一个反函数-但是您尚未在users表上定义任何东西-因此错误地假设反比是一对多.

只需将其添加到您的用户类:

class Users extends Eloquent {

public function pages()

{

return $this->hasMany('Pages');

}

}

标签:laravel,orm,php

来源: .html

发布者:admin,转转请注明出处:http://www.yc00.com/news/1692600811a616418.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信