這是遷移
Schema::create('refunds', function (Blueprint $table) {
$table->id();
$table->bigInteger('user_id');
$table->string('name');
$table->bigInteger('contact');
$table->date('requested_at');
$table->timestamps();
});
這是用戶單擊退款按鈕然后將用戶的所有資料存盤在另一個表中時的用戶組態檔,這怎么可能?
這是我的控制器
public function refundstore(Request $request)
{
$user_id = Auth::user()->id;
$refund = new Refund();
$refund->user_id = $id;
$refund->refund_id = $refund->id;
$refund->save();
return view('front.user.profile', compact('user_id', 'refund'));
}
這是視圖
<form action="{{ route('refundstore',Auth::user()->id)}}" method="post">
@csrf
<button class="applyRefund mt-2">Apply For Refund</button>
</form>
這是路線
Route::post('refundstore', ['as' => 'refundstore', 'uses' => 'RefundController@refundstore']);
顯示類似這樣的錯誤 SQLSTATE[HY000]: 一般錯誤: 1364 欄位 'user_id' 沒有默認值 (SQL: insert into refunds( updated_at, created_at) values (2022-03-05 10:47:01, 2022-03-05 10:47:01))
uj5u.com熱心網友回復:
$user = Auth::user();
$refund = new Refund();
$refund->user_id = $user->id;
$refund->name = $user->name;
$refund->contact = $user->contact;
$refund->requested_at= date("Ymd");
$refund->_token = "1111";
$refund->save();
uj5u.com熱心網友回復:
首先添加type="submit"你的按鈕
并將您的控制器更改為以下代碼:
public function refundstore(Request $request){
$user_id = Auth::user()->id;
$refund = new Refund();
$refund->user_id = $user_id;
$refund->refund_id = $refund->id;
$refund->save();
return view('front.user.profile', compact('user_id', 'refund'));
}
您在 user_id 上收到錯誤沒有默認值,因為您請求的資料錯誤。在您的控制器中宣告$user_id = Auth::user()->id;,以便$user_id找到當前嘗試提出退款請求的 Auth 用戶 ID,如果您想通過 $id 找到 user_id,則必須創建一個新函式。在這種情況下,您已經制作了$user_id = Auth::user()->id;,因此您可以使用$user_id而不是$id加快您的時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/439994.html
標籤:拉拉维尔 laravel-5 雄辩 laravel-8
上一篇:Laravel不驗證陣列輸入
下一篇:Laravel應用程式中有Menu::render()、Assets::render()、Notify::render()嗎?
