Laravel 插入默认值而不是通过请求发送的数据
Posted
技术标签:
【中文标题】Laravel 插入默认值而不是通过请求发送的数据【英文标题】:Laravel insert default value instead of data sent via request 【发布时间】:2021-12-04 07:03:01 【问题描述】:我在我的 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,
]);
【问题讨论】:
【参考方案1】:在您的章节模型中,确保您的 $fillable
属性具有正确的属性:
class Chapter extends Model
protected $fillable = ['title','slug','description','content','is_free'];
....
【讨论】:
谢谢。这就是问题所在。我太傻了。 发生了,请将答案标记为已接受,以便我们将此问题视为“已回答”以上是关于Laravel 插入默认值而不是通过请求发送的数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 5.5 中将数据插入表格并获取电子邮件通知?