数据库表自定义命名约定Laravel Eloquent

时间:2014-11-10 08:14:50

标签: php mysql laravel laravel-4 eloquent

我尝试使用Eloquent从名为completion_date的表中检索数据。我的模型名称是完成,根据laravel文档,我应该声明一个(受保护的)表名,否则Eloquent将使用'完成'作为默认表名。所以我做了这个宣言。 我的控制器出现问题,因为我不知道在我制作视图时使用哪个名称来引用我的模型。我收到了 InvalidArgumentException 查看[completion.lsz]未找到。如果我只是使用我的模型名称来制作视图。

错误:

抛出InvalidArgumentException并显示消息"未找到查看[completion.lsz]。"

有人可以帮忙吗?

模型

 <?php

 //Model (file name: Completion)

 class Completion extends Eloquent{
     protected $table = 'completion_date';
     public $timestamps = false;
 }

控制器      

 class CompletionController extends BaseController  {

 public function index()    {
    $lsz = Completion::all();
    return View::make('completion.lsz', ['completion' => $lsz]);


   }    
 }

路线

 Route::get('/Completion', 'CompletionController@index');

2 个答案:

答案 0 :(得分:1)

错误消息显示未找到视图文件completion/lsz.blade.php

它与模型或数据库无关。

答案 1 :(得分:1)

在Laravel中查看名称就像路径一样。 .转换为/ 这意味着,您的视图会解析为文件app/views/completion/lsz.blade.php(或app/views/completion/lsz.php没有 Blade

因此,您必须将views文件夹中目录的名称更改为“completion”或将view make命令更改为:

View::make('lsz.lsz', ['completion' => $lsz]);