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
Laravel 如何加载自定义关系?_Laravel - Fatal编程技术网

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, ....);
    }
}