Laravel 5 用户定义的设置只需要调用一次


Laravel 5 user defined settings only needs to be called once

对于我的个人网站(在线管理),我有一个约会页面,具有某些设置,仅适用于我,所以我不需要它是安全的。

例如,我可以更改我的视图(显示所有约会或按标签或状态对其进行排序)。我还可以排除状态以确保它没有显示。一切正常,没有问题。

我的问题是这个。我的用户数据库中有一个简单的字段,称为"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);