当前位置: 首页 > 知识库问答 >
问题:

Laravel 4.2 one to很多关系问题

奚卓
2023-03-14

尽管已经建立了许多L4关系,并且它们大部分时间都在工作。我在挣扎,不知为什么,我看不出哪里出了问题。这几乎可以肯定是显而易见的。

关系是一个任务有一个主题,主题有许多任务。

任务模型

class Task extends Eloquent {


    protected $guarded = array();

    public static $rules = array(

    );

    public function resources()
    {
        return $this->belongsToMany('Resource');
    }


    public function topic()
    {
        return $this->belongsTo('Topic', 'topic_id');
    }

    }

主题模型

class Topic extends Eloquent {

    protected $guarded = array();

    public static $rules = array();


    public function tasks()
    {
        return $this->hasMany('Task');
    }

}

任务控制器

 public function show($id)
    {
        $task = $this->task->where('number', $id);

        return View::make('tasks.show', compact('task'));
    }

当我添加($task)时,关系数组为空。

对象(任务)#688(21){[“受保护的”:受保护的]=

共有1个答案

冯星阑
2023-03-14

您需要调用之前在模型中声明的关系。在这种情况下,我将使用渴望加载与()函数。

$tasks = $this->task->where('number', $id)->with('topic');

资料来源:http://laravel.com/docs/4.2/eloquent#eager-装载

我想将变量更改为$tasks,因为使用where(),您将获得illighted\Database\eloont\Collection(许多结果)

你可以通过检查结果。

dd($tasks->get());
 类似资料:
  • 我的Laravel项目有问题。我有范文和评论。一篇帖子有很多评论,这是我帖子评论中的关系。当我想获得所有帖子和评论时,一切都很好: 我有问题,因为我想写搜索引擎的模型。我只想得到帖子和评论,如果搜索条件为真的评论。我尝试以下代码: 但这段代码返回所有要发布的注释,而不仅仅是条件为true的注释。

  • 我已经在Laravel项目中通过php artisan make:auth命令生成了注册表单。我想通过添加一些功能来定制它,用户可以在注册时选择自己的性别。我制作了一个genders表,该表的genders列包含两个值Man和Woman,并在users表中添加了gender_id列。我有很多关系,但当我尝试注册用户时,他已注册,但性别id列仍然为空。我不知道错在哪里。感谢您的帮助。这是我的密码。

  • 问题内容: 在两列上可能有hasMany关系吗? 我的表格有两列,和。 我希望我的关系匹配任一列。 在我的模型中 运行查询:。 我需要运行的查询是: 编辑: 我正在使用急切加载,我认为这将影响它的工作方式。 问题答案: 我认为不可能完全按照您的要求去做。 我认为您应该将它们视为独立的关系,然后在模型上创建一个新方法来检索两者的集合。 这样,您仍然可以获得在模型上进行预先加载和关系缓存的好处。

  • 我有一个Post实体,它有一个TestAttribute类型属性,其代码如下: 我尝试在传递一个RawSql(其中我还获得了其他属性)之后获取属性testAttribute,如下代码所示 我的问题是,当我使用Ebean返回查询结果时。json()。tojson(),则不会返回TestAttribute属性。这是返回的结果: 注意,当我使用json时。toJson()返回结果,但返回的实体属性可以使

  • 所以我的情况是:我想使用Jackson和Hibernate构建一个简单的CRUD Web服务。似乎是一个完美的Spring启动工作。因此,我们有以下几点: (请注意,我正在压缩代码,使其无法编译) 一个简单的数据模型。我们有一个简单的要求:在Web服务上,当我们得到服务对象时,我们应该得到相关的医生。当我们得到医生时,我们应该得到相关的服务。我们使用lazy是因为[insert justifica

  • 我正在使用Laravel 5创建一个博客,但我对多对多(通过透视表)关系有一个奇怪的问题。我的DB设置如下: 文章表: id|bigint|20|PK|不为空|自动增量 title|varchar|255|不为空 body|text|不为空 category_id|bigint|20|不为空 created_at|时间戳|不空 updated_at|时间戳|非空 已发布|布尔值|非空 delete