BETA

laravel6.2¦リクエストに値を追加/コントローラー以外でリダイレクトするtips

投稿日:2020-06-18
最終更新:2020-06-23

環境
・laravel 6.2
・php 7.2

リクエストに値を追加する

 
$requestをまるっと他メソッドへ投げ$requestのidをファイル名の一部に設定するメソッドで、新規登録をした際、最後にinsertしたidで登録したい場合などなど...
$request->merge(['key' => value]);でリクエストに追加できます。

public function store(Request $request, User $user)  
{  
    $input = $request->all();  
    $user = $user->create($input);  
    // requestにlast_insert_idを追加して別の処理  
    $request->merge(['id' => $user->id]);  
    $path = $this->updateImageCheck($request, null);  
}  

 

コントローラーから別メソッドを呼んでredirectさせたい

 
contorller内に毎回$userの存在をチェックして存在しない場合はリダイレクトする場合、別メソッドからリダイレクトさせようとするとリダイレクトできずにそのままメソッドが進んでいきます。

public function show($id)  
{  
    $user = $this->user->find($id);  
    if (empty($user)) {  
        $this->notFoundData();  
    }  
    return view('user.show', compact('user'));  
}  

private function notFoundData()  
{  
    Flash::error(__('messages.not_found', ['attribute' => __('title.user')]));  
    return redirect(route('user.index'));  
}  

 
showメソッドへRedirectResponse オブジェクトが返ってくるので->throwResponse()を加えるとリダイレクトできるようになります。
Throws the response in a HttpResponseException instance.

private function notFoundData()  
{  
    Flash::error(__('messages.not_found', ['attribute' => __('title.user')]));  
    // throwResponseの追加  
    return redirect(route('user.index'))->throwResponse();  
}  

 

🎪🎪🎪  

=͟͟͞͞( ˊᵕˋ )done!

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

メモしていきますφ('ᴗ'」)

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう