如何在Laravel 5中调用模型?

时间:2015-03-09 08:04:40

标签: php laravel model

我正试图了解Laravel 5,并提出一个可能非常简单易于解决的问题,但我正在努力。

我有一个名为TestController的控制器,它位于\ app \ Http \ Controllers

这是控制器:

<?php 
namespace App\Http\Controllers;

class TestController extends Controller {

    public function test()
    {

    $diamonds = diamonds::find(1);
    var_dump($diamonds);
    }



}

然后我创建了一个位于/ app:

的模型
<?php

namespace App;


class diamonds extends Model {


}

把所有其他错误放在一边,我确信有,我的问题是laravel抛出错误:

  

TestController.php第10行中的FatalErrorException:Class   找不到'App \ Http \ Controllers \ diamond'

那么,我如何让控制器理解我指的是模型而不是控制器呢?

提前致谢...

4 个答案:

答案 0 :(得分:5)

您必须使用命名空间在Controller中导入模型。

E.g。

use App\Customer;

class DashboardController extends Controller {
    public function index() {
        $customers = Customer::all();
        return view('my/customer/template')->with('customers', $customers);
    }
}

在您的情况下,您可以直接使用该模型App\diamonds::find(1);或首先使用use App\diamonds;导入该模型,然后像您一样使用它。

此外,建议使用UpperCamelCase类名。所以钻石而不是钻石。您还可以使用dd()(dump和die)而不是var_dump来查看变量的格式良好的转储。

答案 1 :(得分:3)

  //Your model file
  <?php
    namespace App\Models;


    class diamonds extends Model {


    }

  // And in your controller
  <?php 
    namespace App\Http\Controllers;

    use App\Models\

    class TestController extends Controller {

    public function test()
    {

      $diamonds = diamonds::find(1);
      var_dump($diamonds);
    }

 }

答案 2 :(得分:2)

尝试在控制器文件中添加类声明上方的以下行...

use App\Diamonds;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

(这假设您的模型文件名为Diamonds.php

答案 3 :(得分:0)

最终,这里有一些问题并且你们所有人都帮了解,但是我在模型页面上遗漏了以下内容:

use Illuminate\Database\Eloquent\Model;