После отправки формы я получаю сообщение об ошибке «Извините, страница, которую вы ищете, не может быть найдена». - PullRequest
1 голос
/ 19 июня 2019

Я новичок в Laravel, и сейчас я делаю небольшой проект. У меня есть форма, после нажатия кнопки отправки я получил это сообщение об ошибке «Извините, страница, которую вы ищете, не может быть найдена».

Что-то не так с моим кодом? Пожалуйста, помогите мне решить эту проблему, чтобы я мог продолжить проект.

Спасибо за совет

блэйд вида, я назвал его index.blade.php

<div class="col m7 s12">
        <form method="submit" action="post">
          {{ csrf_field() }}
          <div class="card-panel">
            <h5>Please Fill Out This Form</h5>
            <div class="input-field">
              <input type="text" name="name" id="name" required class="validate">
              <label for="name">Name</label>
            </div>
            <div class="input-field">
              <input type="email" name="email" id="email" class="validate">
              <label for="email">Email</label>
            </div>
            <div class="input-field">
              <input type="text" name="phone" id="phone">
              <label for="phone">Phone</label>
            </div>
            <div class="input-field">
              <textarea name="message" id="message" class="materialize-textarea"></textarea>
              <label for="message">Message</label>
            </div>
            <button type="submit" class="btn" blue darken-1>Send</button>
          </div>
        </form>

контроллер, я назвал его LayoutController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;

class LayoutController extends Controller

    {
        /**
         * Display a listing of the resource.
         *
         * @return \Illuminate\Http\Response
         */
        public function index()
        {
            //
            return view('layouts/index');
        }

        public function submit(Request $request)
        {
            $name = $req->input('name');
            $email = $req->input('email');
            $phone = $req->input('phone');
            $message = $req->input('message');

            $data = array('name'=>$name,"email"=>$email,"phone"=>$phone,"message"=>$message);

            $data->save();
            return Redirect::to('/layouts/index');
        }

маршруты web.php

Route::get('/', 'LayoutController@index');

Route::post('/submit', 'LayoutController@submit');

Ответы [ 5 ]

0 голосов
/ 15 июля 2019
<div class="col m7 s12">
    <form method="POST" action="{{url('/submit')}}">
      {{ csrf_field() }}
      <div class="card-panel">
        <h5>Please Fill Out This Form</h5>
        <div class="input-field">
          <input type="text" name="name" id="name" required class="validate">
          <label for="name">Name</label>
        </div>
        <div class="input-field">
          <input type="email" name="email" id="email" class="validate">
          <label for="email">Email</label>
        </div>
        <div class="input-field">
          <input type="text" name="phone" id="phone">
          <label for="phone">Phone</label>
        </div>
        <div class="input-field">
          <textarea name="message" id="message" class="materialize-textarea"></textarea>
          <label for="message">Message</label>
        </div>
        <button type="submit" class="btn" blue darken-1>Send</button>
      </div>
    </form>
0 голосов
/ 19 июня 2019

Метод формы должен быть POST, а action будет вашим маршрутом:

<form method="POST" action="{{ url('/submit') }}"> 
0 голосов
/ 19 июня 2019

Попробуйте это:

<form method="POST" action="{{ route('submit') }}"> 
0 голосов
/ 19 июня 2019

Ошибка, которую вы получаете, потому что неправильные <form> атрибуты тега

action => 'Маршрут, страница или метод класса, который будет обрабатывать форму информация '

method => 'Этот глагол HTTP URI, используемый для передачи информации, вы можно использовать POST (отправка данных в виде http-нагрузки) или GET (отправка данных как строка запроса)

изменение тега <form>, как это решит вашу проблему

<form method="POST" action="{{ url('/submit') }}">
0 голосов
/ 19 июня 2019

Ваш метод формы должен быть POST, а действие должно быть /submit

<form method="POST" action="/submit">
    {{ csrf_field() }}
    <div class="card-panel">
      <h5>Please Fill Out This Form</h5>
      <div class="input-field">
        <input type="text" name="name" id="name" required class="validate">
        <label for="name">Name</label>
      </div>
      <div class="input-field">
        <input type="email" name="email" id="email" class="validate">
        <label for="email">Email</label>
      </div>
      <div class="input-field">
        <input type="text" name="phone" id="phone">
        <label for="phone">Phone</label>
      </div>
      <div class="input-field">
        <textarea name="message" id="message" class="materialize-textarea"></textarea>
        <label for="message">Message</label>
      </div>
      <button type="submit" class="btn" blue darken-1>Send</button>
    </div>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...