2016-01-20 3 views
0

Для моего личного сайта (онлайн-администрирование) У меня есть страница встреч с определенными настройками, которые мне только нужны, поэтому я не нуждаюсь в ней, чтобы быть в безопасности.Laravel 5 пользовательских настроек нужно называть только один раз

Например, я могу изменить свой вид (показать все встречи или отсортировать их по метке или статусу). Я также могу исключить статус, чтобы убедиться, что он не отображается. Все работает, проблем нет.

Моя проблема в этом. У меня есть простое поле в моей пользовательской базе данных под названием «просмотр». Когда я перехожу на страницу назначения, я проверяю значение поля «view» и, если это «статус», например, в моем контроллере я устанавливаю «$ view = status», чтобы вернуть свое «статусное» представление. Это работает со следующей простой проверкой:

$getUserView = \Auth::user()->view; 

    if($getUserView){ 
     $view = $getUserView; 
    } 

На мой взгляд, у меня есть выпадающий список, чтобы изменить вид. Теперь, когда я перехожу к моему мнению, он показывает «статус-представление» просто отлично. Но когда я хочу изменить представление на «default» или «label», используя мой раскрывающийся список, он должен изменить представление на то, что я выбрал. Таким образом, в основном, что я хочу достичь, когда я впервые перехожу на страницу назначения, он должен показать представление, которое я установил в своей базе данных, но только один раз. Я мог бы установить его на сеансе, возможно, для этого, но я просто не уверен, как это сделать. Любые указатели были бы полезны!

Edit:

Все еще борется с этим, потому что я использую 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\[email protected]')); 

Возможно, мне нужно изменить «{status]» на пути к «$ status» и использовать метод put для установки «$ status»? Не знаете, какой будет лучший метод.

ответ

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); 
+0

Удивительного материал, не думал об этом таким образом, и я не делал много с сессиями, поэтому я, безусловно, буду смотреть в это, спасибо :) – Hardist

+0

Нет проблем, просто бросьте комментарий, если это не сработает для вас. Счастливое кодирование! :-) – Dencker

+0

Спасибо, я отредактировал OP, потому что я до сих пор не знаю, как это сделать с GET и сессией, как вы объяснили выше. – Hardist

Смежные вопросы