Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день, возник очередной вопрос: есть view для создания и редактирования статьи, возможно ли из нее вернуть модель статьи? В данный момент я 2 раза делаю обращение к бд(первый для передачи статьи и заполнения полей во view при редактировании, второй при обработке post запроса в контроллере для получения и сохранения изменений в бд). Заранее благодарю.
Не в сети
Тоже актуально. Форма основывается на модели:
{!! Form::model($item, array('route' => array('items.update', $item->id))) !!}
Изменено TuX560 (05.08.2015 14:01:06)
Не в сети
Вы делаете 2 запроса в одном action или разных? Не совсем понимаю зачем вам вернуть модель из шаблона?
Не в сети
В разных, один срабатывает при открытии формы для редактирования для получения данных модели и передачи их во view(для заполнения полей формы). Второй срабатывает при post запросе на обновление данных, то есть снова получаю ту же модель по id, вношу изменения и сохраняю. Вернуть хочу, что бы при обновлении данных не делать второй запрос, а работать с полученной ранее моделью, переданной во view.
+ к этому есть какая-то бредовая мысль, что при формировании post запроса пользователь может подменить id в форме и как следствие для обеспечения полной безопасности придется проверять имеет ли права на редактирование данного поста пользователь перед сохранением(в данный момент проверка стоит перед открытием формы для редактирования). При передаче не id, а каким то образом самой модели(даже не представляю как это организовать, и не утверждаю что это должно передаваться именно из view), от пользователя будут приниматься только данные предназначенные для редактирования, т.е. заголовок и текст, остальное остается без изменений.
Я не утверждаю, что все должно быть именно так. Мне интересно как такую обыденную задачу решают другие, как правильно ее решить?
Изменено TuX560 (06.08.2015 08:54:49)
Не в сети
Я так понял, что автор после загрузки страницы редактирования хочет, чтобы каким-то образом после редактирования пользователем данных, вновь не получать объект, а каким-то образом "получить его после завершения работы скрипта", лол.
Не в сети
Да, ты абсолютно верно понял, хотелось каким-то чудным образом не делать второй запрос в бд что бы не получать еще раз одно и тоже. По сути подхожу к пониманию, что получать то мне и не нужно, мне нужно только обновить поля, а вот как это сделать с использованием предоставленных laravel инструментов пока понять не могу. Так же интересует как же правильно организовать редактирование.
ЗЫ: хотя какой смысл, мой говнокод работает не хуже.
Не в сети
Не в сети
не совсем понимаю что требуется. но обычно делаю так
1) прописываю два маршрута, которые "слушают" гет и пост
2) перед показом формы ищу запись по ID, если нахожу, то заполняю форму/показываю.
3) при сохранении данных проверка, запись, возвращаем к get маршруту с формой и начинаем с 2. пункта
если нужно отправить данные и не перезагружать страницу, то отправляем ajax-ом, а введеные данные как бы уже есть в форме и подгружать их не нужно
Не в сети
Страницы 1