Как отправить данные формы в базу данных MySQL - PullRequest
0 голосов
/ 13 апреля 2019

Я относительно новичок в Laravel и программировании в целом. Я пытаюсь использовать Eloquent и передавать данные из моей формы в базу данных MySQL. Я могу "отправить" без ошибок, но не вижу данных в таблице. Я чувствую, что мой код становится более запутанным, поскольку я пытаюсь понять это, и я хотел бы пересмотреть мой код. Я пробовал несколько разных способов сделать это, читая учебники, книги и просматривая чужой код.

Маршрут

Route::post('submit', function (Request $request) {
    $data = $request->validate([
        'title' => 'required|max:255',
        'category' => 'required|max:255',
        'content' => 'required|max:900',
    ]);
    return redirect('submit');
});

Контроллер

<?php

public function store(Request $request)
{
    Post::create([
        'title' => $request->title,
        'category' => $request->category,
        'content' => $request->content,
    ]);

    return redirect('views.submit');
}

Вид / Лезвие

<div>
    <form action='' method='post'>
        @csrf
        <p><label>Title</label><br/>
            <input type='text' name='title' value=''><?php if (isset($error)) {
                echo $_POST['title'];
            }?></p>
        <p><label>Category</label><br/>
            <textarea name='category' cols='60' rows='10'><?php if (isset($error)) {
                    echo $_POST['category'];
                }?></textarea></p>
        <p><label>Content</label><br/>
            <textarea name='content' cols='60' rows='10'><?php if (isset($error)) {
                    echo $_POST['content'];
                }?></textarea></p>
        <p><input type='submit' name='submit' value='Submit'></p>
    </form>
</div>

Я ожидаю, что это передаст данные в мою таблицу под названием "блоги".

1 Ответ

0 голосов
/ 17 мая 2019

Итак, я наконец-то решил эту проблему после нескольких изменений.

Первым делом я переместил свой контроллер в /app/books.php

Я упростил код до следующего:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class books extends Model
{
    protected $fillable = [
        'title',
        'author',
        'category',
    ];
}

Затем я изменил маршрут, чтобы НЕ включать перенаправление:

Route::post('/submitbook', function (Request $request) {
    $data = $request->validate([
        'title' => 'required|max:255',
        'author' => 'required|max:255',
        'category' => 'required|max:255',
    ]);

Возможно, самое большое разрешение произошло по счастливой случайности. Я работал над отдельной проблемой и должен был очистить свой файл known_hosts, и все работало после.

...