如何在Laravel 5中调用模型?

6

我正在尝试掌握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
那么,我该如何让控制器理解我指向的是模型而不是控制器?
提前感谢...
4个回答

6
你需要使用命名空间在控制器中导入你的模型。
例如:
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类名。所以Diamonds而不是diamonds。您还可以使用dd()(转储和终止)而不是var_dump来查看变量的漂亮格式转储。


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
在您的控制器文件中,在类声明之前添加以下行...
use App\Diamonds;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

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

这非常有帮助 - 谢谢! - Avi
亲爱的,我也使用了@raheel-khan的代码来调用模型,并且还使用了danbahrami对raheel khan代码的修改。但是我遇到了这个错误TestController.php第4行的FatalErrorException:语法错误,意外的'use'(T_USE),期望标识符(T_STRING)。我在第4行上有这一行:**use App\Http\Requests;**。 - Abdul Rehman
你需要在类声明之前放置它(位于文件顶部)。 - Samuurai

0
最终,这里有一些问题,你们所有人都提供了帮助,但是我在模型页面上缺少了以下内容:
use Illuminate\Database\Eloquent\Model;

哦,谢谢 - 如果你使用像PHPStorm(https://www.jetbrains.com/phpstorm/)这样的IDE和相关的laravel ide助手https://github.com/barryvdh/laravel-ide-helper - PHPStorm会下划线缺失的文件并为你建议命名空间。 - wiesson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接