Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用laravel更新模式中的记录,不保存_Php_Laravel - Fatal编程技术网

Php 使用laravel更新模式中的记录,不保存

Php 使用laravel更新模式中的记录,不保存,php,laravel,Php,Laravel,我试图通过引导模式用laravel更新mysql数据库中的记录。下面是我如何从记录表中收集数据的 <button class="site-button" data-toggle="modal" data-target=".edit-booking" data-bookingid="{{ $records->id }}" data-firstname="{{ $records->firstname }}" data-lastname="{{ $records->lastn

我试图通过引导模式用laravel更新mysql数据库中的记录。下面是我如何从记录表中收集数据的

<button class="site-button" data-toggle="modal" data-target=".edit-booking"  data-bookingid="{{ $records->id }}" data-firstname="{{ $records->firstname }}" data-lastname="{{ $records->lastname }}" data-roomtype="{{ $records->roomtype }}" data-checkin="{{ $records->checkin }}" data-checkout="{{ $records->checkout }}" data-adults="{{ $records->adults }}" data-children="{{ $records->children }}" data-email="{{ $records->email }}" data-phone="{{ $records->phone }}" data-payment="{{ $records->payment }}" data-additionals="{{ $records->additionals }}" data-address="{{ $records->address }}"><span class="fa fa-edit"> Edit</span></button> / <button class="site-button"><span class="fa fa-trash"> Delete</span></button>
这就是模型

class Bookings extends Model
{
    protected $fillable = ['firstname', 'lastname', 'email', 'phone', 'address', 'adults', 'children', 'checkin', 'checkout', 'additionals', 'roomtype', 'payment'];
}

填写表单中的所有更改后,如果单击“保存更改”,页面将重新加载,但记录根本不会更新。

在我看来,您从请求中分配值的方式是不可靠的。我还没有亲自测试过,有点匆忙。将在几个小时后回来更新此答案。同时,试试这个

$an_update = Bookings::findOrFail($id);
$an_update->firstName = $request->input('customer_license_plate');
$ticket->save();

return back();
对于所有记录字段,请记住back()会将用户重定向回他们来自的页面,无论成功与否。您可能希望考虑额外的逻辑,以便在成功时重定向到另一个页面(例如,一个列表屏幕)。p>
参考:

$id是从路由参数分配的,但是在打开模式之前,您的路由是在表单操作中定义的。当您打开modal时,似乎没有在任何地方更新路线的预订ID


这意味着您总是使用ID
$records->ID
更新预订,不管该值是多少。

您能列出到目前为止所采取的调试步骤吗?例如,$请求是否填充了您所期望的数据?$id是否正确填充?你读过了吗?是的,$request填充了预期的数据,我用dd($request->all())检查了它,id也正确填充了,我读了关于如何询问和做我能做的事情的说明。你的模态返回了id的记录了吗?是的,模式中的所有字段都填充了正确记录的值。我应该用什么来代替“customer_license_plate”?嘿,我根据文档的“批量更新”部分中给出的示例重写了我的update(),从update()中删除了id参数,并从$request中收集了id,现在终于开始工作了。非常感谢。是的,我找到了那个bug并修复了它。谢谢你让我知道。:-)事实上,@RyanFletcher给出的解决方案对我很有效。无论如何,谢谢。使用update()非常好,所以我不确定这个答案是如何解决问题的。大多数Laravel开发人员都会推广update()的使用,因此只是将其拼凑在一起而不是学习正确的方法可能不是让自己熟悉框架惯例的最佳方式。我遵循了文档,这就是我解决问题的方法,就是这样。
public function update(Request $request, $id)
    {
        $an_update = Bookings::findOrFail($id);
        $an_update->update($request->all());
        return back();
    }
class Bookings extends Model
{
    protected $fillable = ['firstname', 'lastname', 'email', 'phone', 'address', 'adults', 'children', 'checkin', 'checkout', 'additionals', 'roomtype', 'payment'];
}
$an_update = Bookings::findOrFail($id);
$an_update->firstName = $request->input('customer_license_plate');
$ticket->save();

return back();