2017-08-11 16 views
0

ユーザーの設定を編集するためのページ(管理セクション)があります。そこに私はユーザーのIDを取得したい。編集ページのURLは、このhttp://localhost:8000/admin/editUser/27あるので、idがユーザーIDをLaravelフォームに渡す方法

これら27が経路であるある:

Route::get('admin/editUser/{id}', '[email protected]'); 

Route::post('changeRoleType', '[email protected]'); 

とフォーム:

{!! Form::open(['url' => 'changeRoleType', 'method' => 'POST']) !!} 

私の質問です:私はこれを得ることができる方法コントローラーのユーザーのIDですか?私が次のようなことをしたとき:

public function changeRoleType($id) 
    { 
     dd($id); 
    } 

私はそのユーザーのIDを表示します。この場合、それは27(指定されたリンクから)です。

答えて

2

あなたはこの試してみてください:

Route::get('admin/editUser/{id}', '[email protected]'); 

Route::post('changeRoleType/{id}', '[email protected]')->name('updateRole'); 

{!! Form::model($editRole,['route' => ['updateRole', $editRole->id],'method' => 'post']) !!} 

$editRoleを変数は一例であり、

があなたのためにこの作品を願って編集ビューで合格しています! !

+0

- 「ルート[changeRoleType]が定義されていません」 – harunB10

+0

@ harunB10 Let me cそれを聞いて –

+0

@ harunB10私の答え –

1

idは要求オブジェクト内にある必要があります。リクエストを使用していると仮定します。

use Illuminate\Http\Request; 
public function changeRoleType(Request $request, $id) 
    { 
     dd($request->id); 
    } 

https://laravel.com/docs/5.4/requests

1

これを試してください:あなたのコントローラに

$user = DB::table('users')->where('id', $id)->first(); 

とあなたのビューページでを表示する$userへのユーザーデータその選択編集ページを表示し、その変数を渡すこともないこの

{{ Form::model($user, [ 
    'route' => ['changeRoleType', $user->id], 
    'class' => '', 
    'role' => 'form', 
    'method' => 'PATCH' 
    ]) }} 

以来方法はpatchに変更してください。

Route::patch('changeRoleType', '[email protected]'); 
1

できます2つのもの:

フォームのURLにユーザーIDを渡す必要があります。

{!! Form::open(['url' => 'changeRoleType/{{ $user->id }}', 'method' => 'POST']) !!} 

あなたがこれを追加する必要があり、あなたのルートセクションで後:

Route::post('changeRoleType/{user}', '[email protected]'); 

だから、コントローラのメソッドは次のようにする必要があります

public function changeRoleType($user) 
{ 
    dd($user); 
} 

OR

まず、あなたフォームの中に隠れた入力を作成できるので、$ idをコントローラの中に渡すことができます。

{{ Form::hidden('id', '{{$user->id}}') }} 

そしてあなたの方法で。

public function changeRoleType(Request $request) 
{ 
    dd($request->id); 
} 

注:あなたはrouteメソッドを使用して、このルートにパラメータを追加することができます

use Illuminate\Http\Request; 
1

あなたのコントローラーの上で要求を指定する必要があります。

routes.phpweb.php

Route::get('/order/{id}', [ 
      'as' => 'order.show', 
      'uses' => '[email protected]' 
]); 

その後、あなたのリンクやフォームで、あなたはパラメータでこのルートにリンクすることができます

route('order.show', ['id' => $order->id]) }} 

だからあなたの例では、それは次のようになります。

{!! Form::open(['url' => route('%route_name%', ['%param_name%' => $variable]), 'method' => 'POST']) !!} 
関連する問題