Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5和Laravel 5.1“;类别';型号名称';“未找到”;,有更好的解决办法吗?_Laravel_Laravel 5_Models_Laravel Routing - Fatal编程技术网

Laravel 5和Laravel 5.1“;类别';型号名称';“未找到”;,有更好的解决办法吗?

Laravel 5和Laravel 5.1“;类别';型号名称';“未找到”;,有更好的解决办法吗?,laravel,laravel-5,models,laravel-routing,Laravel,Laravel 5,Models,Laravel Routing,我是新来的拉威尔,但我有一些问题。 在《拉维4》中,一切都很好。我完成了数据库配置的所有步骤,创建模型和所有工作都很好 在Laravel 5/5.1中,没有文件夹模型,默认情况下,模型存储在App folder中,但是如果我创建模型“Example.php”: namespace App; use Illuminate\Database\Eloquent\Model; class Example extends Model { protected $table = 'examples'; }

我是新来的拉威尔,但我有一些问题。 在《拉维4》中,一切都很好。我完成了数据库配置的所有步骤,创建模型和所有工作都很好

在Laravel 5/5.1中,没有文件夹模型,默认情况下,模型存储在App folder中,但是如果我创建模型“Example.php”:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Example extends Model
{
protected $table = 'examples';
}
并尝试在routes.php中获取它:

Route::get('/', function(){

$example = new Example;

return $example::all();
});
我看到一个错误:“类‘示例’未找到”。 我找到的解决方案只是添加到route.php中:

use App\Example;
但是,有更好的解决办法吗? 我必须为每个模型添加“使用”? 例如,如果我有2-3-4-5-etc型号,我必须键入:

use App\Example;
use App\Example1;
use App\Example2;
是的,我在Laravel文档、其他论坛等中搜索。如果您执行与Laravel 5.1文档相同的步骤-数据库配置、创建模型、使用它,您将得到此错误


将路径添加到composer.json“autoload”和-composer dump autoload没有帮助。

假设您有两个类
示例
,一个是模型,另一个是位于其他位置的其他类。
PHP无法知道您要使用的是哪一个。
这就是为什么如果您尝试在routes.php这样的文件中使用类,它将无法找到它,除非您指定它或将它与
App\Model\Example
这样的完整路径一起使用

现在,一个好问题是为什么在routes.php中有逻辑?
为了代码清晰和概念分离,不建议您在该文件中编写实际逻辑(或视图)或除路由定义以外的任何内容

建议您重构代码,将处理请求的每一组逻辑移动到实际控制器,然后定义哪个控制器处理哪个路径

这样一来,你就不会有
use
语句,你的
routes.php
实际上会非常干净,易于阅读,你会得到如下结果:

Route::resource('example', 'ExampleController');
Route::resource('admin', 'AdminController');
Route::resource('user', 'UserController');

这也会告诉你在哪里可以找到什么逻辑。

U也可以使用这样的直接方法

    Route::get('/', function()
{
$example = new App\Example;
return $example::all();
});

但我还是更喜欢默认方法。正如你现在看到的,每次使用模型时,我都必须在前面安装应用程序

然后你必须使用:“使用App\Models\Example;”,对于每个模型,我都会问对方。你必须习惯它,它会给你的代码带来大量的组织。