Nad*_*bas 3 php laravel eloquent vue.js
我正在使用 Laravel API 和 VueJS 前端应用程序。我发送axios POST电话以及用户提供的有关他自己的一些信息。在后端,我获取该数据并更新 MySQL 数据库中的用户记录。
这是我的后端代码:
$user = User::where(['logintoken' => $request->login_token, 'remember_token' => $request->remember_token])->first();
if (!$user) {
$status = 404;
$response = ['status' => false, 'message' => 'User not found.'];
} else {
$affectedRows = $user->update([
'country' => $request->input('country'),
'city' => $request->input('city'),
'state' => $request->input('state'),
'dob' => $request->input('dob'),
'language' => $request->input('language'),
'street' => $request->input('street'),
'house' => $request->input('house'),
'avatar' => $request->input('avatar'),
'birthplace' => $request->input('birthplace'),
'type' => $request->input('userType'),
'bio' => $request->input('bio'),
'zip' => $request->input('zip'),
'has-completed-profile' => 1
]);
if (!$affectedRows) {
$response = ['status' => false, 'message' => 'Error updating'];
$status = 500;
} else {
$response = ['status' => true, 'message' => 'User updated successfully', 'updated_record' => $user, 'request' => $affectedRows, 'zip' => $request->input('zip')];
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这段代码工作得很好,除了它没有更新zip字段。我console.log()是 VueJS 端的响应,我看到zip值是正确的,而且数据库中的数据类型 fozip字段是字符串。
尽管如此,这不适用于该zip列。当我创建users迁移时,没有zip列,但一段时间后,当我需要它时,我创建了另一个迁移并使用它来更改表以插入zip字段。
知道为什么它不起作用吗?
Rah*_*hul 10
您需要在相应的模型类中添加该字段。
这应该可以解决您的问题。
$fillable用作应该可以批量分配的属性的“白名单”。因此,在开始之前,您应该定义要进行批量分配的模型属性。您可以使用$fillable模型上的属性来执行此操作。例如,让zip我们将User模型质量的 属性设为可分配:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['zip', // your rest column names];
}
Run Code Online (Sandbox Code Playgroud)
这个例子应该可以帮助你解决你的问题。
这是文档。