Laravel 一对多关系保存方法空属性

Laravel one to many relationship save method empty attributes

我正在尝试挽救与 Laravel save method 的关系:

public function storeContact(Request $request)
{
    $user = User::firstOrNew(['email' => $request->input('email')]);
    $user->save();

    $message = new App\Message([
        'message' => $request->input('remarks')
    ]);

    $user->message()->save($message);
}

我已经在模型上试过 fillable 和 guarded 没有任何效果。这些对于保存方法来说不是必需的,因为它使用了完整的 Eloquent 模型实例。

我在这里错过了什么??

我想我找到了罪魁祸首。

当我在模型上使用 __construct 时,它失败了。当我用 __construct 实例化模型时,没有变量作为属性传递。即使 __construct 为空。

用__construct方法测试

class Message extends Model
    {
        protected $connection = 'system';

        public function __construct()
        {
        }
    // ...
   }

$message = new App\Message(['remarks' => 'Test remarks']);

var_dump(message) // does NOT contain attributes!

没有 __construct 方法的测试 2

class Message extends Model
    {
        protected $connection = 'system';
    // ...
   }

$message = new App\Message(['remarks' => 'Test remarks']);

var_dump(message) // does contain attributes!

对我来说,这看起来像是 Laravel 中的错误。