如何调用 Laravel 5 中的模型?

How do I call a model in Laravel 5?

我正在尝试掌握 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 抛出错误:

FatalErrorException in TestController.php line 10: Class 'App\Http\Controllers\diamonds' not found

那么,如何让控制器明白我指向的是模型而不是控制器?

提前致谢...

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

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

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

您必须使用命名空间将模型导入控制器。

例如

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 class 名称。所以钻石而不是钻石。您还可以使用 dd()(转储和死亡)而不是 var_dump 来查看格式良好的变量转储。

  //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);
    }

 }

最终,这里出现了一些问题,你们都提供了帮助,但是我在模型页面上遗漏了以下内容:

use Illuminate\Database\Eloquent\Model;