我正试图了解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'
那么,我如何让控制器理解我指的是模型而不是控制器呢?
提前致谢...
答案 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;