Как я могу обновить базу данных с laravel на той же странице просмотра? - PullRequest
0 голосов
/ 20 июня 2019

Я хотел получить информацию о клиенте из базы данных с индексом.И на той же странице я хотел обновить эту информацию, не создавая страницу редактирования. Но при редактировании данных и нажатии кнопки я получаю сообщение об ошибке «419 | Page Expired».Можете ли вы дать мне идею?Заранее спасибо ..

Мой index.blade.php -

 <div class="widget-body clearfix">
     @foreach($posts as $post)
      <form method="POST" action="{{ route('front.home.index') }}" enctype="multipart/form-data">                         
        <div class="form-group row customerinfo--area">
        <div class="col-md-4">
          <label class="col-form-label" for="l0">Name</label>
          <input value="{{$post->customername}}" class="form-control" name="customername" type="text">
        </div>  
        <div class="col-md-4">
          <label class="col-form-label" for="l0">Email</label>
          <input value="{{$post->email}}" class="form-control" name="email" type="text">
        </div>  		    							                               
       <div class="form-actions">
          <div class="form-group row">
          <div class="col-md-12 ml-md-auto btn-list">
          <button class="btn btn-primary btn-rounded" type="submit">Save</button>
          </div>
          </div>
       </div>
     </form>
     @endforeach
     </div>
Мой индексный контроллер -

<?php

namespace App\Http\Controllers\front\home;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use App\Customers;

class indexController extends Controller
{
    public function index()
    {
	$posts=DB::select("select * from `customers` where id=1");
        return view('front.home.index',['posts'=>$posts]);
    }
    public function edit(Request $request)
    {
        $all = $request->except('_token');
        $data = Customers::where('id','1')->get();
        $update = Customers::where('id','1')->update($all);
        
	if($update)
        {
            return redirect()->back()->with('status','Customer was edited');
        }
        else
        {
            return redirect()->back()->with('status','Customer was not edited');
        }
    }
 }
Мой web.php / маршруты:

Route::group(['namespace'=>'front','prefix'=>'front','as'=>'front.'],function(){
	  Route::group(['namespace'=>'home','as'=>'home.'],function(){
           Route::get('/','indexController@index')->name('index');
	   Route::post('/','indexController@edit')->name('edit');
    });
});

1 Ответ

2 голосов
/ 20 июня 2019

Это потому, что для формы Laravel требуется токен csrf, а вам его не хватает.Добавьте его прямо под формой открытия:

<form action="" method="post">
    @csrf
    ...

Подробнее здесь: https://laravel.com/docs/5.7/csrf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...