簡體   English   中英

未定義的方法File :: save()(Laravel模型)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM