問題仍然是Laravel 9中新增到現有表格的新欄位無法保存數據
P粉262073176
2023-08-30 13:15:31
<p>這是我原來的表格,稱為問題:</p>
<pre class="brush:php;toolbar:false;">public function up()
{
Schema::create('questions', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('slug');
$table->string('image')->nullable();
$table->string('audio')->nullable();
$table->string('type');
$table->unsignedBigInteger('evaluation_id');
$table->foreign('evaluation_id')->references('id')->on('evaluations')->onDelete('cascade');
$table->timestamps();
});
}</pre>
<p>使用此程式碼,我為現有表格新增了一個新欄位:</p>
<pre class="brush:php;toolbar:false;">php artisan make:migration add_rule_to_questions_table --table=questions
php artisan migrate</pre>
<p>在新列的遷移檔案中,在 up() 方法中加入了以下內容:</p>
<pre class="brush:php;toolbar:false;">public function up()
{
Schema::table('questions', function (Blueprint $table) {
$table->longText('rule')->nullable();
});
}</pre>
<p>至此,新欄位已成功加入資料庫。但是,當我嘗試將資料新增至「問題」表的新列時,資料不會保存在資料庫中。 </p>
<p>在建立表單中我使用以下程式碼:</p>
<pre class="brush:php;toolbar:false;"><div class="form-group">
<label>Rules:</label>
<textarea name="rule" id="rule" class="form-control" value="{{old('rule')}}"></textarea>
@error('rule')
<small class="text-danger">{{$message}}</small>
@enderror
</div></pre>
<p>最後在控制器的 store method() 中,我使用以下程式碼儲存資料:</p>
<pre class="brush:php;toolbar:false;">public function store(Request $request){
Question::create([
'title' => $request->title,
'slug' => $request->slug,
'evaluation_id' => $request->evaluation_id,
'type' => "OM",
'rules' => $request->rule,
]);
}</pre>
<p>但新列沒有保存數據,可能是什麼錯誤? </p>
您需要將
rules
新增到Question
模型中的陣列$fillable