laravel - Laravel 插入默认值而不是通过请求发送的数据
问题描述
我的 Laravel 应用程序面临一个特殊问题,即当我将数据插入数据库时,它总是插入默认值,而不是通过发布请求发送的数据。所以我在将它们插入数据库之前 dd() 值并显示正确的数据。但是在数据库上,它总是在迁移文件中插入默认值。
相同的代码适用于另一个模式。
HTML 表单
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="is_free">Is Free</label>
<select class="form-control" name="is_free" required>
<option value="1">Free</option>
<option value="0">Pro Only</option>
</select>
@error('is_free')
<div class="text-danger mt-2 small ">{{ $message }}</div>
@enderror
</div>
</div>
移民
public function up()
{
Schema::create('chapters', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('slug');
$table->string('description');
$table->mediumText('content');
$table->tinyInteger('is_free')->default(1);
$table->timestamps();
});
}
控制器
Chapter::create([
'title' => $request->title,
'slug' => $request->slug,
'description' => $request->description,
'content' => $request->content,
'is_free' => $request->is_free,
]);
解决方案
在您的章节模型中,确保您拥有$fillable
具有正确属性的属性:
class Chapter extends Model
{
protected $fillable = ['title','slug','description','content','is_free'];
....
}
推荐阅读
- mongodb - 应用程序错误、heroku 托管、后端应用程序
- python - 找不到 add_intercept 的签名:
- javascript - 通过 React 使用 useState 和 onClick 更改背景图像
- c# - 剃刀页面。路由问题。重定向到另一个页面
- javascript - 对于具有多个会话/房间且每个都使用定时事件的多人游戏来说,正确的设置是什么
- linux - 我的 Linux 中安装了这么多 Python3 包(WSL - Ubuntu)
- python - Python中有没有办法创建用户名和密码菜单,其中用户名和密码通过.txt文件中的信息进行验证?
- ansible - ansible.builtin.copy:: 如何复制多个文件
- html - xampp localhost 没有按原样打开文件
- node.js - node.js - 如果 SQL 字符串中存在表名,则使用插入语句中的正则表达式检索表名