在我的页面events.index上,我首先显示登录用户的事件列表。
在我的索引页面上,我有一个带有选项/选择的表单,让用户选择并显示另一个用户的事件。当他提交该表单时,我希望我的索引函数(控制器)使用$ user_id值(来自表单)并再次显示events.index页面,但是对于所选用户的事件。
我不确定什么是最好的方法:
不确定干净的方法是什么:
我的活动/索引路线:
Route::get('events', [
'as' => 'event.index',
'uses' => 'EventsController@index'
]);
事件控制器
public function index()
{
// How to get the $user_id value from form?
if (empty($user_id))
{
$user_id = \Auth::user()->id;
}
$events = Event::where('events.user_id','=','$user_id');
$users = User::all();
return view('events.index')->with(['events' => $events])->with(['users' => $users]);
}
查看索引
{!! Form::open(['route' => 'events.index', 'method' => 'get']) !!}
<select id="user_id" name="user_id">
@foreach($users as $user)
<option value="{{$user->id}}">{{$user->name}}</option>
@endforeach
</select>
{!! Form::submit('Show events for this user') !!}
{!! Form::close() !!}
@foreach($events as $event)
...
@endforeach
答案 0 :(得分:1)
您可以从user_id
对象获取Request
,只需将其注入索引方法:
public function index(Request $request)
{
$user_id = $request->get('user_id') ?: Auth::id();
$events = Event::where('events.user_id','=','$user_id')->get();
$users = User::all();
return view('events.index')->with(['events' => $events])->with(['users' => $users]);
}