对于我的个人网站(在线管理),我有一个约会页面,有一些设置,这对我来说,所以我不需要它是安全的。
例如,我可以更改我的视图(显示所有约会或按标签或状态对其进行排序)。我也可以排除状态以确保它没有显示。一切正常,没有问题。
我的问题是这个。我的用户数据库中有一个名为“view”的简单字段。当我进入我的约会页面时,我检查我的“查看”字段的值,如果它是“状态”,例如,在我的控制器中我设置“$ view = status”,以返回我的“状态”视图。这样做有以下简单的检查:
$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”?不确定最好的方法是什么。
答案 0 :(得分:1)
在会话中使用get
方法the second argument is intended for a default value时,如果找不到会话密钥,将返回该方法。
你可以这样做:
$user = \Auth::user();
$view = session()->get("appointments_view", $user->view);
这将在会话中设置视图,如果未设置,则返回$user->view
。现在,当用户在下拉列表中选择另一个视图时,只需执行以下操作:
session()->put("appointments_view", $dropDownValue);