我正在尝试与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);
}
我已经尝试过可填充和保护模型而没有任何影响。这些对于save方法来说不是必需的,因为它使用完整的Eloquent模型实例。
我在这里缺少什么?
答案 0 :(得分:0)
我想我找到了罪魁祸首。
当我在模型上使用__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中的一个错误。