Как разместить данные и вставить их в базу данных с помощью Laravel? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть файл контроллера, который обрабатывает получение и вставку данных в базу данных:

namespace App\Http\Controllers;

use App\Dream;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class DreamsController extends Controller
{
    public function submit(Request $request) {
        $dreamEntry = new Dream();
        $dreamEntry->dream = $request->input('dream');
        $dreamEntry->save();
        return redirect('/')->with('status', 'INSERTED');
    }
}

У меня есть этот класс для сна:

class Dream extends Model
{
    use Notifiable;

    protected $fillable = [
        'dream'
    ];
}

Маршрут в моей сети.php файл:

Route::post('upload/submit', array('dream'=>'DreamController@submit'));

И действительно простая форма:

<form action="/upload/submit" method="post">
    <textarea></textarea>
    <button type="submit">SUBMIT</button>
</form>

Получение данных из базы данных работает нормально, и я вижу, что моя функция submit работает, потому что ви я вижу URL в корне (/), но я получаю error 419 Что не так с предыдущим кодом?

1 Ответ

0 голосов
/ 16 октября 2018

Вам необходимо поле csrf в вашем <form>, а у вашего <textarea> нет атрибута name=:

<form action="/upload/submit" method="post">
  {{ csrf_field() }}
  <textarea name="dream"></textarea>
  <button type="submit">SUBMIT</button>
</form>

Кроме того, я не уверен, что array('dream'=>'DreamController@submit') работает, может быть просто:

Route::post('upload/submit', 'DreamController@submit'); 
// 2nd parameter is the Controller/Function you want to use.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...