首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试更新数据库条目时会抛出"A four digit year not not be found Data missing“异常

尝试更新数据库条目时会抛出"A four digit year not not be found Data missing“异常
EN

Stack Overflow用户
提问于 2019-04-04 02:26:55
回答 3查看 154关注 0票数 0

我正在用Laravel创建一个CRUD应用程序,我正在使用默认的created_at和updated_at列,当我插入或更新数据库时,它们似乎会自动填充。当从使用编辑条目的ID更改为在我的更新方法中拉入实际模型条目作为参数时,当调用$installer->InvalidArgumentException(‘my field 1',...)时,我偶然发现异常“update A four digit year calling be found Data missing”;

我已经尝试了dd我的请求和拉入的$installer对象,一切看起来都是正确的,但是这种更新方式似乎破坏了对updated_at字段的更新。以下是相关的代码片段:

我的模型类:

代码语言:javascript
运行
复制
class Installer extends Model
{
    protected $guarded = [];
}

我的update方法:

代码语言:javascript
运行
复制
    public function update(Installer $installer) {
        request()->validate([
            'FirstName' => 'required',
            'LastName' => 'required',
            'Position' => 'required',
            'Status' => 'required',
            'EmpId' => 'required'
        ]);
        $installer->update(['FirstName', 'LastName', 'Position', 'Status', 'EmpId']);

        return redirect('/installers');
    }

我的编辑表单的相关部分:

代码语言:javascript
运行
复制
    <form method="POST" action="/installers/{{ $installer->id }}" style="margin-bottom: 1em">
        @method('PATCH')
        @csrf
        <div class="field">
            <label class="label" for="FirstName">First Name</label>
            <div class="control">
                <input type="text" class="input" name="FirstName" placeholder="First Name" value="{{ $installer->FirstName }}" required>
            </div>
        </div>
        <div class="field">
            <label class="label" for="LastName">Last Name</label>
            <div class="control">
                <input type="text" class="input" name="LastName" placeholder="Last Name" value="{{ $installer->LastName }}" required>
            </div>
        </div>
        <div class="field">
            <label class="label" for=Position">Position</label>
            <div class="control">
                <input type="text" class="input" name="Position" placeholder="Position" value="{{ $installer->Position }}" required>
            </div>
        </div>
        <div class="field">
            <label class="label" for="Status">Status</label>
            <div class="control">
                <input type="text" class="input" name="Status" placeholder="Status" value="{{ $installer->Status }}" required>
            </div>
        </div>
        <div class="field">
            <label class="label" for="EmpId">Employee ID</label>
            <div class="control">
                <input type="text" class="input" name="EmpId" placeholder="Employee ID" value="{{ $installer->EmpId }}" required>
            </div>
        </div>
        <div class="field">
            <div class="control">
                <button type="submit" class="button is-link">Update Installer</button>
            </div>
        </div>
    </form>

如何修改它才能让eloquent继续自动更新updated_at字段?

EN

Stack Overflow用户

发布于 2019-04-04 03:52:37

您没有将数组包含到update方法中

必须是这样的:

代码语言:javascript
运行
复制
$installer->update([
    'FirstName' => $request->FirstName,
    'LastName' => $lastNameVar,
    'ColName' => $colValue,
   ...
]);

其中$request是来自

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55501905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档