[英]Undefined method File::save() (Laravel model)
我正在使用Laravel構建一個新的Web項目。 我正在使用Eloquent(它的ORM)來完成所有與數據庫相關的東西。 我有一個帶有兩個表的SQLite數據庫:'images'和'files'。 因此,我有兩個模型:'Image.php'(類Image擴展Eloquent)和'File.php'(類File擴展Eloquent)。
根據文檔我做得對。 我嘗試使用Image模型並且工作完美。 典型使用模型的示例:
$image = new Image;
$image->val1 = $val1;
$image->val2 = $val2;
$image->save();
但是由於某些原因我不知道,File模型沒有按預期工作。 我檢查了一切:表名,類名,文件名,表......對我來說似乎沒問題。 我試着做的基本相同:
$file = new File;
$file->val1 = $val1;
$file->val2 = $val2;
$file->save();
在嘗試運行時,我得到:
調用未定義的方法Illuminate \\ Support \\ Facades \\ File :: save()
如果我在保存之前執行var_dump(),似乎正在加載模型:
object(Illuminate\Support\Facades\File)#133 (4) {
["val1"]=> string(8) "abcdef"
["val2"]=> string(10) "ghijkl"
}
我在這里錯過了什么?
在這種情況下,文件是保留字,因為它是以下Facade的別名(在/app/config/app.php中定義)
'File' => 'Illuminate\Support\Facades\File',
將模型名稱更改為其他名稱,並且所有代碼都可以正常工作。
如果您使用任何保留關鍵字作為模型名稱,則會出現此問題。 例如:
請求
文件..等
對於正在搜索類似問題的人,請記住您的模型類的名稱需要是單數的。
class Client extends Eloquent {
protected $table = 'promociones';
}
然后,在你的控制器中:
client = new Client;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.