Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте.
Вот разбираюсь с работой laravel на примере отправки формы с сохранением в базу данных.
Вот разбираюсь с формой из документации: https://laravel.ru/docs/v5/validation
В ней есть кусок кода:
/**
* Сохранение новой статьи.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// Статья прошла проверку, сохранение в БД...
}
И я вот не понимаю какой код сохраняет данные в таблицу?
Или код сохранения данных в таблицу здесь не написан?
Помогите как нужно сохранять данные в таблицу?
И как задать в какую таблицу сохранять или название таблицы будет одинаково с названием контроллера?
Не в сети
Если никто не знает, может покажете где написано про сохранение в базу данных в laravel?
Изменено VasyaPupkin (23.08.2016 22:44:09)
Не в сети
Не в сети
Если никто не знает, может покажете где написано про сохранение в базу данных в laravel?
логическая бомба: как можно подсказать, если никто не знает ?!
Не в сети
За ссылку спасибо.
Делаю как описано по ссылке. Создал контроллер, модель, прописал route.php, создал миграцию для этого класса.
При открытии страницы, т.е. гет запросе страница с формой открывается.
Но при отправке формы методом пост, в консоли браузера пишет ошибка 500.
В роуте прописано так:
Route::group(['prefix' => 'flight'], function () {
Route::get('', [
'as' => 'flight.index',
'uses' => 'FlightController@index',
]);
Route::post('', [
'as' => 'flight.item',
'uses' => 'FlightController@updateFlight',
]);
});
Функция в контроллере отвечающая за обработку формы:
public function updateFlight(Request $request, ActivatorContract $contract)
{
$this->validate($request, [
'name' => 'required|max:255',
'email' => 'required|email|email_mailgun:' . uniqid() . '|email_registered',
'mess' => 'required|max:255'
]);
$flight = new Flight;
$flight->name = $request->input('name');
$flight->mess = $request->input('mess');
$email_updated = false;
if ($flight->email != $request->input('email')) {
$email_updated = true;
$flight->email = $request->input('email');
$flight->email_is_confirmed = false;
$contract->sendToken('email', $flight);
}
$flight->save();
return response()->json([
'status' => 'ok',
'message' => view('flight.flight-updated', ['email_updated' => $email_updated])->render()
]);
}
Почему возникает 500 ошибка помогите понять?
Спасибо.
Изменено VasyaPupkin (24.08.2016 19:32:44)
Не в сети
Почему возникает 500 ошибка помогите понять?
Какая именно ошибка возникает можно посмотреть в логе /storage/logs/laravel.log. Но лучше включить режим отладки в .env файле APP_DEBUG=true.
Не в сети
Почему возникает 500 ошибка помогите понять?
Какая именно ошибка возникает можно посмотреть в логе /storage/logs/laravel.log. Но лучше включить режим отладки в .env файле APP_DEBUG=true.
Ошибки в этом файле больше не появляются, но ошибка 500 все равно выдается при пост запросе.
При гет - запросе, то есть в браузере все нормально отображается.
А вот в логах openserver отображается ошибка:
PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid Sentry DSN: http://sitecom' in D:\OpenServer\domains\sitecom\vendor\sentry\sentry\lib\Raven\Client.php:272
Сайт выгружен на локальный сервер и настройка RAVEN_DSN оказывается неверной для локального сервера.
Может ли ошибка 500 возникать из-за ошибки связанной с RAVEN_DSN?
Не в сети
разобрался с 500 ошибкой.
оказывается вызывались свойства email_is_confirmed, которые отсутствуют в таблице.
Сейчас работает, данные сохраняются
Сейчас другая проблема, как сделать оправку формы на почту.
Не в сети
Страницы 1