我一直尝试在laravel 5.2应用程序(carfreak)中解决错误失败。
FatalErrorException in PropertyController.php line 85:
Class 'App\Models\CarModel' not found
我已将默认用户模型移动到文件夹app / models并进行了必要的更改,以便它可以正常工作。
现在我有了一个新的控制器CarController
,以及一个不起作用的新模型CarModel
。它似乎是命名空间这么简单的问题,但我无法解决它。
carfreak\app\Models\CarModel.php
namespace carfreak\Http\Controllers;
use App\Models\CarModel;
namespace carfreak\Models;
我可以通过使用CarController
来创建不同版本的错误,但我认为没有任何排列有效。
编辑:添加了控制器和模型......
编辑:更多细节补充:
具有讽刺意味的是,我可以php artisan make:model sanityCheck
并且它将在\app
根目录中创建一个模型(即不在app \ models中)......并且可以调用该模型。如果我将CarController放回根目录中,并适当地更改它的命名空间,它仍然无法正常工作。它几乎就像我在类名或类似的东西中有一些愚蠢的拼写错误,但我已经将类名复制并粘贴到我的文件名,类声明中,"使用"声明等等。仍然。犯规。工作。 AARGH!
//这是carModel
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CarModel extends Model
{
//
/**
* The attributes that are mass assignable.
* @var array
*/
protected $fillable = [
'colourOfCar',
];
}
//这是carController
<?php
namespace carfreak\Http\Controllers;
use Illuminate\Http\Request;
//use \carfreak\app\Models\CarModel;
use App\Models\CarModel;
class CarController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function __construct()
{
$this->middleware('auth');
}
public function store(Request $request)
{
// validate the data
$this->validate($request, array(
'CarColour' => 'required|max:50'
));
// store in the database
$newCar = new CarModel;
dd($request);
}
}
答案 0 :(得分:0)
这看起来错误,\carfreak\app\Models\CarModel;
应该在App\Models\CarModel
中使用this is carController
套管在linux上非常重要。通常在PSR Aloader中使用命名空间来查找文件。 Linux文件系统区分大小写。因此CareModel.php
文件应位于App/Models/CarModel.php
但我从未使用过Laravel ......
答案 1 :(得分:0)
嗯,这是。我通过问自己这个问题解决了这个问题:如果我在命名空间,参考和组织我的模型时遇到了很多麻烦,那么也许我可以让工匠为我做这件事。
让我思考不同的帖子是Mansoor Akhtar的建议:How do I instruct artisan to save model to specific directory?
让工匠第一次在正确的位置制作模型。
php artisan make:model Models/CarModel
在Controller中,正确引用模型
use name-of-app\Models\CarModel;
我的问题可能有也可能没有缓存刷新问题。每次更改后我都会重新启动我的XAMPP,以确保不涉及缓存。我也试过了
php artisan cache:clear