Php Laravel 5.6中的补丁请求

Php Laravel 5.6中的补丁请求,php,laravel,laravel-5.6,Php,Laravel,Laravel 5.6,对于我的每个登录用户,他们在“设置”表中都有一行,这为我提供了有关用户在使用我的web应用时需要的各个设置的更多信息 好的,在Laravel5.6中,我希望用户能够更新设置。但是,如果他们第一次登录,它可能不存在,我不知道补丁请求是否在尝试更新它之前检查该行 无论哪种方式,以下是我的设置模型: <?php namespace App; use Illuminate\Database\Eloquent\Model; use \App\User; class Settings exte

对于我的每个登录用户,他们在“设置”表中都有一行,这为我提供了有关用户在使用我的web应用时需要的各个设置的更多信息

好的,在Laravel5.6中,我希望用户能够更新设置。但是,如果他们第一次登录,它可能不存在,我不知道补丁请求是否在尝试更新它之前检查该行

无论哪种方式,以下是我的设置模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

use \App\User;

class Settings extends Model
{
    protected $connection = "mysql";
    protected $table = "settings";

    public function user() {
        return $this->belongsTo(User::class);
    }

}
然后在我的
设置controller.php
中,我有以下内容:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use \App\Settings;

class SettingsController extends Controller
{
    //
    public function index() {
        return view('settings');
    }

    public function patch() {

        Settings::patch(request([
            'font',
            'updates',
            'font-size',
            'hide-intro',
            'hide-commentary',
            'night-mode'
        ]));

    }
}
好吧,这对我来说应该是可行的,我知道没有验证,但我可以稍后再验证。但是,我得到以下错误:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message

我能做些什么来解决这个问题?我是不是走错了路?

你需要
传递
方法
动词
。将此添加到您的表单中

<input name="_method" type="hidden" value="PATCH">

在表单内部使用以下
方法\u字段()

{{ method_field('PATCH') }}

哦,好的,现在我得到:
Method-illumb\Database\Query\Builder::patch不存在。
因为该方法在您的
设置
模型上不存在。@N.B.回顾其他项目,我认为它不需要存在-这是一个补丁请求,与
model->create()一样
它是内置的?模型没有补丁方法,而是使用@LuisfelipeDejesusMunoz建议的
设置::updateOrCreate(..
。有关更多信息,请阅读:@FahimUddin,好的,我已经使用了该方法,但是我没有得到任何数据库更改。它知道要更新哪个用户吗?
<input name="_method" type="hidden" value="PATCH">
{{ method_field('PATCH') }}