从模型中为用户返回空值

Returning null Value for User from Model

我为 http://localhost:8000/messages 的用户获取了空值。我试图在 Message 模型中获取用户 table 值。它还在控制台中给出了一个空值。

路线

Route::get('/messages', function () {
    return App\Message::with('user')-> get();
})-> middleware('auth');

型号

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Message extends Model
{
    protected $fillable = ['message'];

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

用户型号代码:

<?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 messages()
    {
         return $this-> hasMany(Message::class);
    }
}

快照

messages table 必须有 user_id 和正确的用户 ID 才能建立 belongsTo 关系。

https://laravel.com/docs/5.5/eloquent-relationships#one-to-many-inverse