Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.08.2016 21:49:03

Как производить сохранение данных в таблицу?

Здравствуйте.
Вот разбираюсь с работой 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',
  ]);

  // Статья прошла проверку, сохранение в БД...
}

И я вот не понимаю какой код сохраняет данные в таблицу?

Или код сохранения данных в таблицу здесь не написан?
Помогите как нужно сохранять данные в таблицу?

И как задать в какую таблицу сохранять или название таблицы будет одинаково с названием контроллера?

Не в сети

#2 23.08.2016 22:43:58

Re: Как производить сохранение данных в таблицу?

Если никто не знает, может покажете где написано про сохранение в базу данных в laravel?

Изменено VasyaPupkin (23.08.2016 22:44:09)

Не в сети

#3 24.08.2016 06:46:36

Re: Как производить сохранение данных в таблицу?

Не в сети

#4 24.08.2016 12:19:13

Re: Как производить сохранение данных в таблицу?

VasyaPupkin пишет:

Если никто не знает, может покажете где написано про сохранение в базу данных в laravel?

логическая бомба: как можно подсказать, если никто не знает ?! smile

Не в сети

#5 24.08.2016 19:31:41

Re: Как производить сохранение данных в таблицу?

AlexeyMezenin пишет:

За ссылку спасибо.

Делаю как описано по ссылке. Создал контроллер, модель, прописал 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)

Не в сети

#6 24.08.2016 20:01:37

Re: Как производить сохранение данных в таблицу?

Почему возникает 500 ошибка помогите понять?

Какая именно ошибка возникает можно посмотреть в логе /storage/logs/laravel.log. Но лучше включить режим отладки в .env файле APP_DEBUG=true.

Не в сети

#7 24.08.2016 22:43:55

Re: Как производить сохранение данных в таблицу?

AlexeyMezenin пишет:

Почему возникает 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?

Не в сети

#8 25.08.2016 15:46:54

Re: Как производить сохранение данных в таблицу?

разобрался с 500 ошибкой.
оказывается вызывались свойства email_is_confirmed, которые отсутствуют в таблице.
Сейчас работает, данные сохраняются

Сейчас другая проблема, как сделать оправку формы на почту.

Не в сети

Подвал раздела