Как сохранить данные формы в laravel? - PullRequest
1 голос
/ 07 февраля 2020

маршрутов / веб. php

Route::get('/','UserController@index');
Route::post('/index','UserController@store');

контроллер: UserController. php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Users;

class UserController extends Controller
{
    public function index()
    {
        return view('index');
    }

    public function store(Request $request)
    {
        $user = new Users();
        $user->fname = $request->input('fname');
        $user->lname = $request->input('lname');
        $user->email = $request->input('email');
        $user->password = $request->input('password');
        $user->save();
        return redirect()->route('index')->with('info','User Added Successfully');
    }
}

Просмотр: index.blade. php

@extends('layout.main')
@section('title','Index Page')
@section('content')
    <div class="container">
        <div class="row">
            <form id="myform" action="{{route('store')}}">
                @csrf
                <div class="form-group">
                    <label for="fname">{{ trans('core.fname') }}</label>
                    <input type="text" class="form-control" id="fname" name="fname"/>
                </div>
                <div class="form-group">
                    <label for="fname">{{ trans('core.lname') }}</label>
                    <input type="text" class="form-control" id="lname" name="lname"/>
                </div>
                <div class="form-group">
                    <label for="fname">{{ trans('core.email') }}</label>
                    <input type="text" class="form-control" id="email" name="email"/>
                </div>
                <div class="form-group">
                    <label for="fname">{{ trans('core.password') }}</label>
                    <input type="password" class="form-control" id="password" name="password"/>
                </div>
                <div class="form-group">
                    <input type="submit" class="btn btn-primary" id="submit" name="submit" value="{{trans('core.submit')}}"/>
                </div>
            </form>
        </div>
    </div>
@endsection

Я новичок в laravel. В этом коде я просто хочу выполнить операцию CRUD. Вот только я выполняю операцию вставки, но она показывает мне ошибку, т.е.

Route [store] не определен. (Представление: C: \ xampp \ htdocs \ myproject \ resources \ views \ index.blade. php).

Я не понимаю, где я делаю неправильно? Итак, как я могу это сделать? Пожалуйста, помогите мне.

Спасибо

Ответы [ 5 ]

0 голосов
/ 07 февраля 2020
 public function store(Request $request)
    {
         $this->validate($request,[
            'fname' => 'required',
            'lname' => 'required',
            'email' => 'required',
            'password' => 'required'
        ]);

        $user = new Users();
        $user->fname = $request->fname;
        $user->lname = $request->lname;
        $user->email = $request->email;
         $user->password = Hash::make($request->password);
        $user->save();
        Toastr::success('User Successfully Saved','Success');
        return redirect()->route('admin.user.index');
}
0 голосов
/ 07 февраля 2020

изменить в web.php

Route::post('/index','UserController@store')->name('store');

добавить method="POST" в вашей форме, которая отсутствует

@extends('layout.main')
@section('title','Index Page')
@section('content')
    <div class="container">
        <div class="row">
            <form id="myform" action="{{route('store')}}" method="post">
                @csrf
                <div class="form-group">
                    <label for="fname">{{ trans('core.fname') }}</label>
                    <input type="text" class="form-control" id="fname" name="fname"/>
                </div>
                <div class="form-group">
                    <label for="fname">{{ trans('core.lname') }}</label>
                    <input type="text" class="form-control" id="lname" name="lname"/>
                </div>
                <div class="form-group">
                    <label for="fname">{{ trans('core.email') }}</label>
                    <input type="text" class="form-control" id="email" name="email"/>
                </div>
                <div class="form-group">
                    <label for="fname">{{ trans('core.password') }}</label>
                    <input type="password" class="form-control" id="password" name="password"/>
                </div>
                <div class="form-group">
                    <input type="submit" class="btn btn-primary" id="submit" name="submit" value="{{trans('core.submit')}}"/>
                </div>
            </form>
        </div>
    </div>
@endsection
0 голосов
/ 07 февраля 2020

попробуйте

Route::post('/index','UserController@store')->name('index.store');

и на вашем блейд-файле

route('index.store')

см. https://laravel.com/docs/5.8/routing#named -routes

0 голосов
/ 07 февраля 2020

Изменить это Отлично работать: -

Route::post('/index','UserController@store')->name('store');
0 голосов
/ 07 февраля 2020

Измените свой веб. php как enter code here

Route::resource('index','UserController');

Изменить

use App\Users;

$user = new Users();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...