Как вставить значение простой формы в Laravel? - PullRequest
0 голосов
/ 04 октября 2018

resources / view / index.blade.php

<html>
    <head>
        <title>Laravel</title>
    </head>
    <body>
          <form method="post" action = "/create">
            <input type="text" name="fname" id="fname" placeholder="firstname" /><br/><br/>
            <input type="text" name="phone" id="phone" placeholder="phone" /><br/><br/>
            <input type="submit" name="submit" id="submit" />
          </form>
    </body>
</html>

Контроллер

class StudInsertController extends Controller {

    public function insertform()
    {
        return view('index');
    } 

    public function insert(Request $request)
    {
        $fname = $request->input('fname')
        $phone = $request->input('phone');

        $data = array('fname'=>$fname,"phone"=>$phone);

        DB::table('user')->insert($data);

        echo "Record inserted successfully.<br/>";
        echo '<a href = "/insert">Click Here</a> to go back.';
    }
} 

Маршруты

Route::get('/', function () {
    return view('index');
});
Route::get('insert','StudInsertController@insertform');
Route::post('create','StudInsertController@insert');

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

Спасибо

Ответы [ 4 ]

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

Добавьте {{csrf_field ()}}, и действием будет action = "{{url ('/ create')}}" "

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

Ваш отсутствующий токен CSRF добавьте это

{{ csrf_field() }}
0 голосов
/ 04 октября 2018

Добавьте _token в вашем теге формы, как этот

<html>
<head>
    <title>Laravel</title>
</head>
<body>
      <form method="post" action = "/create">
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
        <input type="text" name="fname" id="fname" placeholder="firstname" /><br/><br/>
        <input type="text" name="phone" id="phone" placeholder="phone" /><br/><br/>
        <input type="submit" name="submit" id="submit" />
      </form>
</body>

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

По умолчанию маршруты POST в Laravel защищены CSRF .Вам нужно будет добавить токен в форму, чтобы убедиться, что почтовый запрос принят сервером.

<form method="post" action = "/create">
    @csrf <!-- This blade directive generates <input type="hidden" name="_token" value="xyz..." /> -->
    <input type="text" name="fname" id="fname" placeholder="firstname" /><br/><br/>
    <input type="text" name="phone" id="phone" placeholder="phone" /><br/><br/>
    <input type="submit" name="submit" id="submit" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...