2016-09-27 9 views
3

ボタンをクリックして、index.blade.phpからedit.blade.phpに追加のパラメータ($ uid)を渡す必要があります。Laravel追加のパラメータをコントローラに渡す

マイindex.blade.php:

<a href="{!!action('[email protected]', ['id' => Auth::user()->id, 'uid' => 1])!!}" type="button" class="btn btn-block btn-lg btn-info vorlageBtn card-link">Edit </a> 

マイFlyersController:私はエラーを取得上記のコードでは

public function edit($id, $uid) 
{ 

    return view('backend.flyers.edit')->withUid($uid); 
} 

:「アプリケーション\のHttp \コントローラの引数2がありませんが\ FlyersController: :編集() "

私はここで間違っていますか?

+0

代わりにルートをリンクしてみませんか? –

答えて

-1

使用あなたがaction()ヘルパーに配列を渡す必要があり、あなたのビューに

+3

OPは、ビューにではなく、コントローラにパラメータを渡そうとしています。 –

+0

同じ結果です。コントローラはまだパラメータのことを知らない – Mamulasa

1

を二つ以上の変数を渡します。このコード

return view('backend.flyers.edit', ['var1' => $var1, 'var2' => $var2]); 

action('[email protected]', ['id' => Auth::user()->id, 'uid' => 1]) 
+0

私もこれを試しました。同じ結果で。ちなみに、これは "http:// localhost:8000/backend/flyers/10/edit?%24uid = 1"というボタンをクリックしてリダイレクトされたURLです。 uidは渡されますが、FlyersControllerはまだ問題を引き起こします – Mamulasa

2

エラーから投げされていませんアクションメソッド。そのURLのルートから来ています。

引数をコントローラに渡す場合は、URLを確認してください。

これが希望のURLの場合localhost:8000/backend/flyers/10/edit?%24uid=1となり、2番目の引数はコントローラー関数の引数ではない変数$requestになります。

+0

これは私のルートですRoute ::リソース( 'バックエンド/チラシ'、 'FlyersController')。 – Mamulasa

+1

あなたはリソースルーティングを使用しています.2番目の引数はクエリ文字列にありますので、$ request-> uidのようなリクエスト変数から取得します。コントローラアクションにリクエスト変数を追加してください。 –

1

[OK]を、私はこの問題を解決することができます 唯一の方法は私のFlyersControllerに次のように使用することです:

public function edit(Request $request, $id) 
{ 

    return view('backend.flyers.edit')->withRequest($request); 
} 

とアクセス私の見解では、{{要求 - > UID}}と、その後のuid。

誰かがこれに対してより良い解決策を持っている場合は、私に教えてください。

+0

なぜより良いソリューションが必要なのかよくわかりません。これは非常に良い方法です。 –

関連する問題