我盯着Laravel,我有麻烦尝试做一个简单的插入,但似乎我所有的可填充字段都没有被包括在内.这是错误:
SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default value
(SQL: insert into `addresses` (`updated_at`, `created_at`)
values (2017-12-25 09:31:49, 2017-12-25 09:31:49))
如您所见,只有created_at
和updated_at
将要插入,我想可能我忘记了我的fillable
变量,但这是我的模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Addresses extends Model
{
protected $fillable = [
'name',
'city',
'suburb',
'street',
'o_number',
'i_number',
'postal_code',
'phone_s',
'email_s',
'google_map',
'customer_id'
];
}
以及主计长
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Addresses;
use App\Customers;
class AddressesController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function store(Request $request){
$create = Addresses::create([
'name' => request('name'),
'city' => request('city'),
'suburb' => request('suburb'),
'street' => request('street'),
'o_number' => request('o_number'),
'i_number' => request('i_number'),
'postal_code' => request('postal_code'),
'phone_s' => request('phone_s'),
'email_s' => request('email_s'),
'google_map' => request('google_map'),
'customer_id' => Customers::where('code',$request->session()->get('customer_code'))->first()->id
]);
$success = $create ? $request->session()->flash('success', '¡Registro exitoso!') : $request->session()->flash('success', 'Ooops! Algo salio mal :(');
return redirect('addresses/'.$request->session()->get('customer_code'));
}
}
回显request()
值的作品!所以我错过了现在,我有一些其他的模型和控制器工作良好,以同样的方式。请帮助!
8条答案
按热度按时间mbzjlibv1#
显示此错误的原因是数据库中需要NAME字段。请尝试编辑迁移脚本并在此字段中设置默认值或使其可为空。
例如
$table->string('name')->nullable();
或
$table->string('name')->default('');
然后运行迁移刷新。
wribegjk2#
后藤“phpmyadmin”〉〉“变量”然后找到“sql_mode”编辑并删除“STRICT_ALL_TABLES或STRICT_TRANS_TABLES”
这对我很有效,希望对所有人都有帮助。
xzv2uavs3#
这是此问题的最新答案,但可能对其他人有所帮助。此错误可能是由于模式中$fillable数据中的错误而导致的。您可以尝试使用
代替
但是你必须验证你在控制器中传递的数据。
0vvn1miw4#
该错误是由MYSQL5.7的strict模式引起的,请修改connections.mysql中的config/database.php文件,在这里输入'strict' =〉false.
lfapxunr5#
我用
save()
解出来的工作正常
k10s72fa6#
当您对字段使用nullable()方法时,该字段将默认为NULL。
例如,将以下内容添加到迁移文件中:
更新日期:
您可以添加:
pcww981p7#
可以在表结构中勾选Null选项,如下所示-
sirbozc58#
请确保request()具有密钥“name”。请将request('name ')替换为随机字符串,然后重试。