Laravel5.7系でviewファイルにあるフォームに入力した各項目をDBにstoreメソッドで追加する機能を作成しております。
(create.blade.phpのformに入力->ChatConversation.phpのcreate/storeメソッドで処理->DB登録)
その際に「Undefined variable: request」というエラーで躓いてます。
解決に関してアドバイスを頂きたいです。よろしくお願いします。
特に調べた際に以下の2点が自分の中で理解できておらず、もし可能であればお答え頂きたいです。
①コントローラーファイルとモデルファイルどちらにsaveメソッドの処理を書いた方が良いでしょうか?
(Laravelの構造上DBとのやりとりはモデルファイルを通じてだと思うのですが)
②$requestにformから渡される値をどのように格納すれば良いでしょうか?
web.php <?php Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::get('/display', 'ChatConversationController@display')->name('chat_conversation'); Route::get('/create', 'ChatConversationController@create')->name('chat_conversation'); Route::get('/create', 'ChatConversationController@store')->name('chat_conversation' ); ?> コード
ChatConversationController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use \App\Model\ChatConversation; class ChatConversationController extends Controller { public function display() { $data = ChatConversation::all(); return view('display',['data' => $data]); } public function create(){ return view('create'); } public function store(){ $chatConversation = new ChatConversation(); $chatConversation->fill($request->all()); 。 $chatConversation->save(); } } ?> コード
create.blade.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> {{Form::open(['action' => 'ChatConversationController@store','method'=>'get'])}} {{ csrf_field() }} <label>node_id:<input type="text" name="node_id"></label><br> <label>line_id:<input type="text" name="line_id"></label><br> <label>message:<input type="text" name="message"></label><br> <label>version_type:<input type="text" name="version_type"></label><br> <label>ip_addr:<input type="text" name="ip_addr"></label><br> <label>platform:<input type="text" name="platform"></label><br> <label>translate:<input type="text" name="translate"></label><br> <input type="submit" name="post" value="Send"> {{Form::close()}} </body> </html> コード
ChatConversation.php モデルファイル <?php namespace App\Model; use Illuminate\Database\Eloquent\Model; class ChatConversation extends Model { protected $fillable = ['chat_conversations']; public function create(Request $request){ $chatConversation = new ChatConversation(); $chatConversation->fill($request->all()); $chatConversation->save(); } } ?> コード
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/31 14:39
退会済みユーザー
2019/12/31 14:41
2020/01/01 02:30