Laravel在生产服务器(Forge)上为模型id返回0



我有一个奇怪的场景,Laravel为ID返回0。这在本地有效,我还确认模型在另一个函数中正确保存并返回ID。为什么ID总是0?(模型总是成功保存(。

ID列是自动递增的。

//模型

class Email extends Model
{
public $fillable = ['to', 'from', 'relates_to', 'name', 'email',
'subject', 'greeting','attachment',
'body', 'module_id', 'sign_off', 'course_id' ];
protected $casts = ['attachment'=>'integer'];
protected $dates = ['sent_at'];
public function scopeMine($query, $user)
{
return $query->where('from', $user);
}
}

//控制器

public function storeAndSend(Request $request)
{
$validatedData = $request->validate([
'subject' => 'sometimes|required|string',
'greeting' => 'required',
'body' => 'required',
'sign_off' => 'required',
'email' => 'required|email',
'module_id' => 'required',
'name' => 'required|string'
]);
//save Email   
$email = new AppEmail;
$email->to = $request->has('user') ? $request->user : 0;
$email->name = $request->name;
$email->email = $request->email;
$email->relates_to = $request->has('entity') ? $request->entity : null;
$email->from   = $request->user()->id;
$email->subject = $request->subject;
$email->greeting = $request->greeting;
$email->attachment = $request->attachment ?? null;
$email->body = $request->body;
$email->sign_off = $request->sign_off;
$email->course_id = $request->course_id;
$email->module_id = $request->module_id ?? null;
$email->save();
dd($email->toArray()); // $email->id = 0
//get to
dispatch(new AppJobsSendCourse($email->id));
return response()->json(['success'=>true]);
}

//转储的输出

array:15 [
"to" => "58"
"name" => "joe"
"email" => "joe@boobo.com"
"relates_to" => "AppUser"
"from" => 1
"subject" => "test"
"greeting" => "Hello"
"attachment" => null
"body" => "<p>test</p>"
"sign_off" => "Catch you later"
"course_id" => 27
"module_id" => -1
"updated_at" => "2018-11-04 14:00:59"
"created_at" => "2018-11-04 14:00:59"
"id" => 0
]

这是望远镜的问题。正如评论中所说,这就是问题所在:https://github.com/laravel/telescope/issues/289

顺便说一句,现在看起来已经修复了

最新更新