我在使用LARAVEL将数据保存到数据库时遇到问题

问题描述 投票:0回答:3

这是我所有的代码,单击后无法保存到数据库,我尝试更改保存方法,但不起作用

    use App\makereservations;
use Illuminate\Http\Request;

class reservationController extends Controller
{
    public function hreservation()
    {
        return view('hreservation');
    }
    public function reserve (Request $request)
    {
        $this->validate($request ,[
            'name' => 'required',
            'email' => 'required',
            'phone' => 'required|email',
            'date' => 'required',
            'time' => 'required',

        ]);
        $reservation  = new makereservations();
        $reservation  =  $request->input('name');
        $reservation  =  $request->input('email');
        $reservation  =  $request->input('phone');
        $reservation  =  $request->input('date');
        $reservation  =  $request->input('time');
        $reservation  =  $request->input('personne');
        $reservation -> statu =  false;
        $reservation -> save();
        return redirect()->back();
    }
}

这是根本route :: post('reserve','reservationController @ reserve')-> name('reserv.sent');

php html laravel
3个回答
0
投票

您错过了->箭头符号。

$reservation  = new makereservations();
$reservation->name  =  $request->input('name');
$reservation->email  =  $request->input('email');
$reservation->phone  =  $request->input('phone');
$reservation->date  =  $request->input('date');
$reservation->time  =  $request->input('time');
$reservation->personne  =  $request->input('personne');
$reservation-> statu =  false;
$reservation-> save();
return redirect()->back();

0
投票

如果在MakeReservations模型中,您具有可大量分配的字段

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class makereservations extends Model
{
    protected $table = "your_table_name"
    ...
    protected $fillable = [
        'name', 'email', 'phone', 'date', 'time', 'personne', 'status'
    ];
    ...
}

您的reservationController中的reserve方法可能是这样:

<?php

namespace App\Http\Controllers;

use App\makereservations;
use Illuminate\Http\Request;

class reservationController extends Controller
{
    ...
    public function reserve (Request $request)
    {
        $this->validate($request ,[
            'name' => 'required',
            'email' => 'required|email',
            'phone' => 'required',
            'date' => 'required',
            'time' => 'required',

        ]);
        $inputs = $request->all();
        $inputs['status'] = false;
        $reservation = makereservations::create($inputs);
        return redirect()->back();
    }
}

我已检测到您正在通过验证方法来尝试验证电话为电子邮件


0
投票

您可以在短期内以更简洁的方式来优化代码。

public function reserve (Request $request)
{
    $attributes = $this->validate($request ,[
        'name' => 'required',
        'email' => 'required|email',
        'phone' => 'required',
        'date' => 'required',
        'time' => 'required',
        'personne' => ''
    ]);

    $attributes['statu'] = false;

    makereservations::create($attributes);
    return redirect()->back();
}

在您的模型中,请确保这些内容

class makereservations extends Model
{
    ....
    protected $guarded = []; //it means all data from request will be mass assignable
}
© www.soinside.com 2019 - 2024. All rights reserved.