我有一个用于编辑用户偏好的页面(管理部分)。在那里,我想获取用户的ID。编辑页面的网址为http://localhost:8000/admin/editUser/27,因此ID为27。
这些是路线:
Route::get('admin/editUser/{id}', 'AdminController@editUser');
Route::post('changeRoleType', 'AdminController@changeRoleType');
和表格:
{!! Form::open(['url' => 'changeRoleType', 'method' => 'POST']) !!}
我的问题是:如何在控制器中获取此用户的ID?当我做这样的事情时:
public function changeRoleType($id)
{
dd($id);
}
我希望它显示该用户的ID。在这种情况下,这将是27(来自给定的链接)。
答案 0 :(得分:3)
你应该试试这个:
Route::get('admin/editUser/{id}', 'AdminController@editUser');
Route::post('changeRoleType/{id}', 'AdminController@changeRoleType')->name('updateRole');
{!! Form::model($editRole,['route' => ['updateRole', $editRole->id],'method' => 'post']) !!}
注意:$editRole
变量是示例,通过编辑视图传递
希望这对你有用!!!
答案 1 :(得分:1)
id应该在请求对象中。假设您正在使用Request。
use Illuminate\Http\Request;
public function changeRoleType(Request $request, $id)
{
dd($request->id);
}
答案 2 :(得分:1)
你可以做两个的事情:
您需要在表单的URL中传递用户ID。
template <class T>
void define_vector(size_t size, const T& init_val=T())
{
vector<T> sample;
if constexpr(is_copy_assignable<T>::value) {
sample.resize(size, init_val);
} else {
assert(init_val == T());
sample.resize(size);
}
}
在路线部分后,您需要添加以下内容:
{!! Form::open(['url' => 'changeRoleType/{{ $user->id }}', 'method' => 'POST']) !!}
所以Controller中的方法必须是这样的:
Route::post('changeRoleType/{user}', 'AdminController@changeRoleType');
或强>
首先,您可以在表单中创建隐藏输入,这样您就可以在控制器中传递$ id。
public function changeRoleType($user)
{
dd($user);
}
然后在你的方法中。
{{ Form::hidden('id', '{{$user->id}}') }}
注意:您需要在控制器顶部指定请求
public function changeRoleType(Request $request)
{
dd($request->id);
}
答案 3 :(得分:1)
您可以使用route
方法并为此路线添加参数。
routes.php
或web.php
:
Route::get('/order/{id}', [
'as' => 'order.show',
'uses' => 'OrderController@showOrderFromOrderhistory'
]);
然后在您的链接或表单中,您可以使用参数:
链接到此路线route('order.show', ['id' => $order->id]) }}
所以在你的例子中它将是:
{!! Form::open(['url' => route('%route_name%', ['%param_name%' => $variable]), 'method' => 'POST']) !!}