Laravel关系无法按预期工作

时间:2017-12-13 13:09:56

标签: laravel debugging relationship

所以我一直在构建这个简单的留言簿,让人们发表评论。我已将用户模型链接到评论模型,并尝试返回发布评论的用户但是我总是收到错误。我在此之前使用相同的代码制作了票务计划,它仍然有效并且工作正常。见下文

评论模型



<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
  public function user()
  {
    return $this->belongsTo('User::class');
  }
}
&#13;
&#13;
&#13;

用户模型

&#13;
&#13;
<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function comments()
    {
      return $this->hasMany(Comment::class);
    }
}
&#13;
&#13;
&#13;

这是我试图返回结果的控制器

&#13;
&#13;
<?php

namespace App\Http\Controllers;
use App\Comment;
use App\User;
use Auth;
use Illuminate\Http\Request;

class HomeController extends Controller
{

    public function index()
    {
      $comments = Comment::all();
      $user = Auth::user();
      $test = User::all();
      $average = number_format((Comment::avg('rating')),2, '.', '');
      dd($comments->user);
      return view('welcome')->withComments($comments)->withUser($user)->withAverage($average);

    }
}
&#13;
&#13;
&#13;

每次我尝试和DD结果我得到错误
此集合实例上不存在Property [user]。

我100%难以理解为什么这会对一个项目起作用而不是另一个项目。我甚至重建了这个小应用程序,看看它是否是我做过的事情,我仍然得到相同的结果。

1 个答案:

答案 0 :(得分:0)

您正在尝试get property of a collection,而不是对象。所以这样做:

?