对于我的个人网站(在线管理),我有一个约会页面,具有某些设置,仅适用于我,所以我不需要它是安全的。
例如,我可以更改我的视图(显示所有约会或按标签或状态对其进行排序)。我还可以排除状态以确保它没有显示。一切正常,没有问题。
我的问题是这个。我的用户数据库中有一个简单的字段,称为"view"。当我转到约会页面时,我检查我的"视图"字段的值,例如,如果它是"状态",则在我的控制器中设置"$view = 状态",以返回我的"状态"视图。这有效,只需以下简单检查:
$getUserView = 'Auth::user()->view;
if($getUserView){
$view = $getUserView;
}
在我的视图中,我有一个下拉菜单来更改视图。现在,当我转到我的视图时,它很好地显示了"状态视图"。但是,当我想使用下拉列表将视图更改为"默认"或"标签"时,它应该将视图更改为我选择的视图。所以基本上我想要实现的是,当我第一次进入我的约会页面时,它应该显示我在数据库中设置的视图,但只有一次。我可以在会话中设置它,但我只是不确定如何完成此操作。任何指示都会有所帮助!
编辑:
仍在为此苦苦挣扎,因为我对所有内容都使用 GET,还有下拉菜单。例如,当我更改下拉列表中的值时,javascript 只是再次调用 URL,但具有在下拉列表中选择的状态。因此,例如,我的默认 URL 如下:
http://example.com/appointments/status/default
现在,我在下拉列表中选择"已完成",调用以下URL:
http://example.com/appointments/status/completed
在我的约会控制器中,我输入以下内容:
$status = session()->get("status", 'Auth::user()->status);
在我的路线中,我有以下内容:
Route::get('appointments/status/{status}', array('as' => 'appointments', 'uses' => 'Appointments'AppointmentsController@index'));
也许我应该将路由中的"{status}"更改为"$status"并使用 put 方法来设置"$status"?不确定最好的方法是什么。
在会话上使用 get
方法时,第二个参数用于默认值,如果未找到会话密钥,将返回该值。
你可以做这样的事情:
$user = 'Auth::user();
$view = session()->get("appointments_view", $user->view);
这将在会话中设置视图,如果未设置,它将返回$user->view
。现在,当用户在下拉列表中选择另一个视图时,只需执行以下操作:
session()->put("appointments_view", $dropDownValue);