在我的laravel應用程序中,我有一個文本類型的帖子“正文”字段,我試圖給該字段一個默認值,如“這個sis是博客文章的默認文本,可以隨意更改它”,但mysql拋出了一個錯誤。$table->text('body')->default('This is the default text for a blog post, feel free to change it.');這不起作用...根據文檔,BLOB/文本字段不能有默認值,這是非常奇怪的tbh。https://dev.mysql.com/doc/refman/5.7/en/blob.html我想我可以將字段類型從文本更改為字符串,但是afaik字符串不會像字符串類型那樣多的字符,我可以肯定的是,我的博客文章將是loooong。我該如何解決這個問題?提前致謝。
3 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
您可以使用訪問器&突變體
這里有一個為body
設置默認值的例子 它的作用是,每次你的模型要保存在數據庫中時,它都會檢查值是否為空,然后它設置你的默認值
只需將下面的代碼放入你的模型中。
public function setBodyAttribute($value = null)
{
if (null === $value) {
$this->attributes['body'] = 'default value';
}
$this->attributes['body'] = $value;
}

慕村225694
TA貢獻1880條經驗 獲得超4個贊
在mysql中,你不能給出文本默認值。解決 方案:
將其轉換為( 一行最多可以包含 255 個字符)
varchar
用代碼給出默認值(在創建期間,創建后,默認占位符文本... )

料青山看我應如是
TA貢獻1772條經驗 獲得超8個贊
您可以將其設置為可為空,并且在您的視圖中,如果是,則只需為其提供默認文本。$table->text('body')->nullable(true);
NULL
- 3 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消