【问题标题】:Laravel Getting User From PostLaravel 从帖子中获取用户
【发布时间】:2016-12-30 10:55:18
【问题描述】:

我有 3 个相互关联的表。

用户、客户、备注

用户可以向客户端添加注释。

notes 表有以下内容

id, user_id, client_id, note

在我的客户页面“client/{id}”上,我正在打印为特定客户添加的所有注释。

但是,我无法从注释中的用户表中获取用户的名称。

当我尝试提取发布该注释的用户的名称时,它显示尝试获取非对象的属性。

客户端控制器

$client = Client::find($cid);

    if (empty($client)) {
        return Redirect::to('contact');       //redirect to contacts if contact not found
    } else {
        $this->layout->content = View::make('clients.show')->with('client', $client);
    }

客户端视图

@foreach ($client->notes as $note)
    {{ $note->note }} //This works just fine.
    Posted by: {{ $note->user->name }}
@endforeach

我的笔记模型:

public function user() {
    return $this->belongsTo('User','user_id');
}

我的用户模型:

public function notes() {
    return $this->hasMany('Note','user_id');
}

如果我尝试使用该功能,我可以做类似的事情

$note->user()->get()

但这会打印出用户行的整个数组(它是正确的数组)。

【问题讨论】:

    标签: php laravel laravel-4 eloquent relationships


    【解决方案1】:

    尝试: 更改此行

    $client = Client::find($cid);
    

    收件人

    $client = Client::find($cid)->load('notes.user');
    

    或者

    $client = Client::find($cid)->with('notes.user')->get();
    

    【讨论】:

    • @NyseX。再次测试with 解决方案。我认为它会正常工作
    【解决方案2】:

    我相信belongsTohasMany 需要他们所指模型的完整路径。

    所以:

    备注

    public function user() {
        return $this->belongsTo('App\User');
    }
    

    用户

    public function notes() {
        return $this->hasMany('App\Note');
    }
    

    【讨论】:

    • 那行不通。忘了提它的 Laravel 4.2
    • 哇,这是一个快速的反对意见。谷歌搜索似乎很多人都有这个错误,所以我只是想我会把它放在这里。另外我不知道这仍然是 Laravel 4.2,这意味着我在 Laravel 5 中考虑的一些东西不适用于 OP。
    • 我讨厌没有解释就投反对票 -.-' 无论如何谢谢,我希望你能找到答案!
    • @NyseX 为什么要对一个你知道行不通的答案投赞成票?
    • @TimCastelijns 为什么有人会在不说明原因的情况下否决一个看似合理的答案?
    【解决方案3】:

    通过使用找到解决问题的方法

    $note->user()->pluck('name')
    

    不要认为这是最好的方法。不过,它确实有效。

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 1970-01-01
      • 2020-07-03
      • 2016-12-24
      • 1970-01-01
      • 2020-06-30
      • 2018-08-16
      • 2020-02-27
      • 2020-05-11
      相关资源
      最近更新 更多