Laravel 如何加载自定义关系?
我有一个Laravel 如何加载自定义关系?,laravel,Laravel,我有一个状态表,用于存储多个型号(表)的状态。例如: 在这里,我可以用belongs访问相应的记录 class Post extends Model { public function status() { return $this->belongsTo(Status::class, ....); } } 但是我想要的是加载评论的状态选项,这样我就可以下拉或者类似的东西了。我可以创建一个与where的自定义关系,但这并不意味着要加载 有什么建议吗?
状态
表,用于存储多个型号(表)的状态。例如:
在这里,我可以用belongs访问相应的记录
class Post extends Model {
public function status()
{
return $this->belongsTo(Status::class, ....);
}
}
但是我想要的是加载评论的状态选项,这样我就可以下拉或者类似的东西了。我可以创建一个与where的自定义关系,但这并不意味着要加载
有什么建议吗?你可以用它
状态模型
类状态扩展模型
{
公共静态$COMMENT_STATUS='COMMENT';
公共静态$POST_状态='POST';
公共函数scopeForComments($query)
{
返回$query->where('type',self::$COMMENT\u STATUS);
}
公共函数scopeForPosts($query)
{
返回$query->where('type',self::$POST_STATUS);
}
}
然后,在控制器中:
MyController.php
Status::forComments()->get()//列出所有状态以供评论
状态::forArticles()->get()//列出文章的所有状态
您可以使用它
状态模型
类状态扩展模型
{
公共静态$COMMENT_STATUS='COMMENT';
公共静态$POST_状态='POST';
公共函数scopeForComments($query)
{
返回$query->where('type',self::$COMMENT\u STATUS);
}
公共函数scopeForPosts($query)
{
返回$query->where('type',self::$POST_STATUS);
}
}
然后,在控制器中:
MyController.php
Status::forComments()->get()//列出所有状态以供评论
状态::forArticles()->get()//列出文章的所有状态
您可以将与
一起用于主模型,并可以加载关系数据。像Post::with('status')
。Ref您可以将与
一起用于主模型,并可以加载关系数据。像Post::with('status')
。实际上,我正在寻找调用模型的状态(注释状态)。那么根据我的表,对于Post::with('status')->get(),我需要什么样的关系代码>。当我调用关系时,它必须从statuses表中获取类型为comment
的记录。我可以毫无问题地获取该模型的当前状态。但是我需要调用注释的所有可能状态(已删除,在本例中为挂起),我可以使用公共函数statuses(){returnstatus::where('type',self::class);}
方法调用该模型的所有状态,但我无法调用。我想我需要某种多态关系,可以将表值与模型名称进行比较。在我的例子中,在更新中获取类型为App\Comment
的所有记录如何获取评论模型的所有状态(成功、错误、发布)。实际上,我正在查找调用模型的状态(评论状态)。那么根据我的表,对于Post::with('status')->get(),我需要什么样的关系代码>。当我调用关系时,它必须从statuses表中获取类型为comment
的记录。我可以毫无问题地获取该模型的当前状态。但是我需要调用注释的所有可能状态(已删除,在本例中为挂起),我可以使用公共函数statuses(){returnstatus::where('type',self::class);}
方法调用该模型的所有状态,但我无法调用。我想我需要某种多态关系,可以将表值与模型名称进行比较。在我的例子中,在更新中获取类型为App\Comment
的所有记录如何获取注释模型的所有状态(成功、错误、已发布)。
class Post extends Model {
public function status()
{
return $this->belongsTo(Status::class, ....);
}
}