登録フォームからDBにデータを登録したいのですが、下記のエラーが出てしまいます。
SQLSTATE[HY000]: General error: 1364 Field 'id' doesn't have a default value (SQL: insert into sites
(site_name
, site_url
, updated_at
, created_at
) values (テスtオ, テスト, 2020-10-09 03:56:41, 2020-10-09 03:56:41))
IDに値が入っていないと言われているのでStoreに $site->id = $request->id; を追加してみたのですがそうすると下記のエラーがでてしまいます。
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null (SQL: insert into sites
(id
, site_name
, site_url
, updated_at
, created_at
) values (?, テスtオ, テスト, 2020-10-09 04:10:49, 2020-10-09 04:10:49))
エラー分で検索するとmysqlでnullを許容するような設定をすると良いと書いてありますが、IDなので許容はできないですよね・・・
public function create() { return view('site/create'); } public function create_confirm(Request $request) { // $request->validate([ // 'site_name' => 'required', // ]); $data = $request->all(); // dd($request); // dd($request); return view('site/create_confirm', ['data' => $data,]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $site = new Site; $site->id = $request->id; //ここを追加してみました。 $site->site_name = $request->site_name; $site->site_url = $request->site_url; $site->save(); return redirect()->route('site/index'); }
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー