LoginSignup
0
1

More than 3 years have passed since last update.

Laravel-引数ありコントローラーで、引数がない場合の動作も許可するAPIを作る

Last updated at Posted at 2020-11-14

例えば投稿機能postコントローラーがあり、特定のuser_idの引数に渡す。
このページにアクセスした時に、
引数としてユーザーID(テーブル上では 'user_id')があれば、そのユーザーIDのpostだけをAPIとして表示し、
引数がなければ全postをAPIで表示したいときなんかの動き。

route側の設定

api.php

Route::get('postlist/{id?}','PostController@postlist');

こんな感じで引数に「?」を入れると、引数ありでもなしでもいけるよって言うルーティングを許可します。

コントローラー側の設定

idのある場合とない場合の動作もコントローラーに記述が必要です。

PostController.php

public function postlist($id = null)
    {   
        if($id == null){
            //user_idが入ってない場合は全ポストを取得
            $posts = Post::All();
        }else{
            //user_idが入っている場合は全ポストを取得
            $posts = Post::where('user_id', $id)->get();
        }
        return $posts;
    }

ユーザーIDが入っていない場合、user_idにかかわらず、全ユーザーのpostを返してくれる。
スクリーンショット 2020-11-14 23.31.22.png

ユーザーIDが入っている場合、そのユーザーIDの情報だけをAPIで返してくれる。
スクリーンショット 2020-11-14 23.29.38.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1