Laravelの関数で2つのアクションが可能ですか?

user11124425

私のアプリケーションには、admin前者の2つのユーザーロールがあります

管理者はいくつかのフォーマーを作成できます...

ここに画像の説明を入力してください

もし、私はID 1で私を接続しますか?前者の情報を検索します。

ここに画像の説明を入力してください

だから、私の関数index()はユーザーのIDを取得することができます

public function index()
{   
    if($has_role = auth()->user()->hasRole('admin')){
        $formers = Former::first()->paginate(5);
        return view('admin.formers.index', compact('formers'));
    } else{
        $formers = Former::where('email', Auth::user()->email)->paginate(5);
        return view('admin.formers.index', compact('formers'));
    }
}

さて、ユーザー管理者のために、検索バーを作成したいと思います...

ここに画像の説明を入力してください

関数index()の前に作成、機能しました

public function index(Request $req)
{
    if ($req->search == "") {
        $formers = Former::paginate(5);
        return view('admin.formers.index', compact('formers'));
    } else {
        $validated = $req->validate([
            'search' => 'alpha', 
        ]);

        $formers = Former::where('nom', 'LIKE', '%' . $validated['search'] . '%')->paginate(5);
        $formers->appends($req->only('search'));
        return view('admin.formers.index', compact('formers'));
    }
}

さて、2つのアクションを関数に適応させたいのですが、それは可能ですか?

同じ関数でuser_id取得し検索バーを作成できると思いますか?

ありがとうございました

ナモシェク

私がすることは次のとおりです。

  • データで両方の役割を果たす1つのアクションを追加します。
  • 検索を管理者にのみ表示しますが、管理者以外が検索できるかどうかはセキュリティの観点から重要ではないため、サーバー側ではこの事実を無視してください。とにかく彼らは彼らの結果に限定されています。

基本的に、これは次の方法で実現できます。

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;

public function index(Request $request)
{   
    $user = $request->user();

    $formers = Former::query()
        ->when($user->hasRole('admin') !== true, function (Builder $query) use ($user) {
            $query->where('email', $user->email);
        })
        ->when($request->has('s'), function (Builder $query) use ($request) {
            $query->where('nom', 'like', '%'.$request->input('s').'%');
        })
        ->paginate(5);

    return view('admin.formers.index', compact('formers'))
        ->with('display_search', $user->hasRole('admin'));
}

次に、ビューで$display_search変数を使用して、検索を表示するかどうかを決定できます。

@if($display_search)
  <form method="post" action="...">
    <input type="text" name="s" placeholder="Type to search...">
  </form>
@endif

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Web3.jsイーサリアム-1つのトランザクションで2つの関数を呼び出すことは可能ですか?

分類Dev

C#で2つのアクションを組み合わせることが可能ですか?

分類Dev

[Doctrine] [Symfony] 1つのアノテーションリクエストで複数の結合(可能ですか?)

分類Dev

UItableViewに複数のセクションを含めることは可能ですか?つまり、セクション1には2つのセクションがあり、これら2つのセクションには複数のセクションがあります。

分類Dev

複数のアクションが可能な場合のポリシーの勾配は何ですか?

分類Dev

1つの関数内で2つの独立したアクションを作成するにはどうすればよいですか?

分類Dev

PostgreSQLが2つのシリアル化可能なトランザクション間に競合があると考えるのはなぜですか?

分類Dev

Javaで2つのパラメーターを持つアクション関数を作成する方法

分類Dev

その関数の外部のアクションを介してjavascriptの再帰関数を終了することは可能ですか?

分類Dev

引数の2つの可能なバリエーションで関数を定義するにはどうすればよいですか?

分類Dev

Ruby onRailsで1つのアクションから別のアクションに変数を送信する

分類Dev

Jestで他の2つの関数をディスパッチするReduxアクションをテストしますか?

分類Dev

Google NodeJS v2 alphaでのアクション:isRequestFromDialogflow関数が移動しましたか?

分類Dev

1つのPostgreSQL関数で2つの別々のトランザクションを実行する

分類Dev

タイプアサーションや中間体なしでTypeScriptのプロパティを持つ関数を定義することは可能ですか?

分類Dev

多対多の関係に関連する1つのアクションで複数のエンティティを保存する方法[Spring Boot 2、JPA、Hibernate、PostgreSQL]

分類Dev

テストステップで、私のサイトからzapierアプリへの許容可能な応答に関する情報を見つけることができません(私のサイトでは「アクション」です)

分類Dev

1つのボタンでポストアクションを使用して複数のフォームを送信することは可能ですか?

分類Dev

Photoshopのアクション-これは可能ですか?

分類Dev

いくつかの可能なが排他的なものの中から1つのコマンドラインアクション引数を要求するにはどうすればよいですか?

分類Dev

[送信]をクリックしたときに1つのフォームアクションで、1つの列の値が異なる2つのエントリがデータベースに挿入される可能性はありますか(Codeigniter)

分類Dev

SQLAlchemyトランザクションで2つの関連するテーブルをコミットすることは可能ですか?

分類Dev

SparkSessionが1つのアクションに対して2回実行されるのはなぜですか?

分類Dev

SConsBuilderのアクション内で関数を呼び出す

分類Dev

Reduxのディスパッチ関数がアクションではなく関数を取得するのはなぜですか?

分類Dev

Ember Power SelectのonChangeアクションに複数の引数を渡すことは可能ですか?

分類Dev

Dart2で関数の引数としてオプションのパラメータで関数を指定することは可能ですか?

分類Dev

1つの<a>タグに対して2つの連続したonclickアクションを持つことは可能ですか?

分類Dev

2つの異なるコレクションから(条件付きで)ルックアップすることは可能ですか?

Related 関連記事

  1. 1

    Web3.jsイーサリアム-1つのトランザクションで2つの関数を呼び出すことは可能ですか?

  2. 2

    C#で2つのアクションを組み合わせることが可能ですか?

  3. 3

    [Doctrine] [Symfony] 1つのアノテーションリクエストで複数の結合(可能ですか?)

  4. 4

    UItableViewに複数のセクションを含めることは可能ですか?つまり、セクション1には2つのセクションがあり、これら2つのセクションには複数のセクションがあります。

  5. 5

    複数のアクションが可能な場合のポリシーの勾配は何ですか?

  6. 6

    1つの関数内で2つの独立したアクションを作成するにはどうすればよいですか?

  7. 7

    PostgreSQLが2つのシリアル化可能なトランザクション間に競合があると考えるのはなぜですか?

  8. 8

    Javaで2つのパラメーターを持つアクション関数を作成する方法

  9. 9

    その関数の外部のアクションを介してjavascriptの再帰関数を終了することは可能ですか?

  10. 10

    引数の2つの可能なバリエーションで関数を定義するにはどうすればよいですか?

  11. 11

    Ruby onRailsで1つのアクションから別のアクションに変数を送信する

  12. 12

    Jestで他の2つの関数をディスパッチするReduxアクションをテストしますか?

  13. 13

    Google NodeJS v2 alphaでのアクション:isRequestFromDialogflow関数が移動しましたか?

  14. 14

    1つのPostgreSQL関数で2つの別々のトランザクションを実行する

  15. 15

    タイプアサーションや中間体なしでTypeScriptのプロパティを持つ関数を定義することは可能ですか?

  16. 16

    多対多の関係に関連する1つのアクションで複数のエンティティを保存する方法[Spring Boot 2、JPA、Hibernate、PostgreSQL]

  17. 17

    テストステップで、私のサイトからzapierアプリへの許容可能な応答に関する情報を見つけることができません(私のサイトでは「アクション」です)

  18. 18

    1つのボタンでポストアクションを使用して複数のフォームを送信することは可能ですか?

  19. 19

    Photoshopのアクション-これは可能ですか?

  20. 20

    いくつかの可能なが排他的なものの中から1つのコマンドラインアクション引数を要求するにはどうすればよいですか?

  21. 21

    [送信]をクリックしたときに1つのフォームアクションで、1つの列の値が異なる2つのエントリがデータベースに挿入される可能性はありますか(Codeigniter)

  22. 22

    SQLAlchemyトランザクションで2つの関連するテーブルをコミットすることは可能ですか?

  23. 23

    SparkSessionが1つのアクションに対して2回実行されるのはなぜですか?

  24. 24

    SConsBuilderのアクション内で関数を呼び出す

  25. 25

    Reduxのディスパッチ関数がアクションではなく関数を取得するのはなぜですか?

  26. 26

    Ember Power SelectのonChangeアクションに複数の引数を渡すことは可能ですか?

  27. 27

    Dart2で関数の引数としてオプションのパラメータで関数を指定することは可能ですか?

  28. 28

    1つの<a>タグに対して2つの連続したonclickアクションを持つことは可能ですか?

  29. 29

    2つの異なるコレクションから(条件付きで)ルックアップすることは可能ですか?

ホットタグ

アーカイブ