Laravel 5 - 将用户模型移动到应用程序/模型导致自动加载问题

时间:2016-11-23 12:13:53

标签: php laravel laravel-5 autoload laravel-spark

处理包含两个用户模型的继承Laravel Spark项目。

一个是App目录中的标准Spark模型,另一个是App / Models内部。我已经将两个模型组合在一起并更新了auth.php以引用Models目录中的User模型,但是composer dump-autoload却说它无法找到App / User模型。

如何告诉自动加载器用户模型不再存在 而是在Models目录中?

编辑:

我已将命名空间更改为App / Models但仍收到错误:

class_parents(): Class App\User does not exist and could not be loaded

在我的终端上运行dump-autload

第二次编辑:

修复了,没有意识到命名空间被引用了这么多。在App \ User上找到并替换并对问题进行了排序。

4 个答案:

答案 0 :(得分:2)

您需要更改User模型命名空间:

namespace App\Models;

答案 1 :(得分:2)

更改命名空间,并像这样使用

namespace App\Models;

答案 2 :(得分:2)

尝试重命名命名空间。 :)

namespace App\Models;

答案 3 :(得分:1)

标准的Laravel安装将可以通过简单地更改名称空间来实现,如其他人所提到的那样。但是Laravel Spark引用了UserTeam模型;因此,仅更改名称空间是行不通的。

您不应编辑vendor/laravel/spark-aureliusaurelius代号会因您的版本而异)内的任何文件,因为不会跟踪这些更改。

使用Spark,您应将以下几行添加到app/Providers/SparkServiceProvider.php中:

public function register()
{
    Spark::useUserModel('App\Models\User');
    Spark::useTeamModel('App\Models\Team');
}

您可以设置自己的自定义App\Models目录,而不使用上面的示例。

最后,您将需要更新对模型所做的所有引用,例如将控制器use App\User更新为use App\Models\User

来源:Laravel Spark 6.0 Customization