Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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
Php 为什么不是';";“用户”;找到班级了吗?_Php_Laravel - Fatal编程技术网

Php 为什么不是';";“用户”;找到班级了吗?

Php 为什么不是';";“用户”;找到班级了吗?,php,laravel,Php,Laravel,我正在使用Laravel构建一个PHP web应用程序,并试图将表单中的名称和电子邮件传递到我的数据库,但它显示以下错误: 致命错误:未捕获错误:在中找不到类“user” C:\xampp\htdocs\MVC\app\controller\home.php:20堆栈跟踪:#0 C:\xampp\htdocs\MVC\app\core\app.php(43):home->create('hala'), 'hala@yahoo')#1c:\xampp\htdocs\MVC\public\index

我正在使用Laravel构建一个PHP web应用程序,并试图将表单中的名称和电子邮件传递到我的数据库,但它显示以下错误:

致命错误:未捕获错误:在中找不到类“user” C:\xampp\htdocs\MVC\app\controller\home.php:20堆栈跟踪:#0 C:\xampp\htdocs\MVC\app\core\app.php(43):home->create('hala'), 'hala@yahoo')#1c:\xampp\htdocs\MVC\public\index.php(4): app->uu construct()#2{main}被抛出 第20行的C:\xampp\htdocs\MVC\app\controller\home.php

这是我在主页上使用的代码:

class home extends controller
{    
    public function index($name = '')
    {
        $this->view('home/index', ['name'=>$user->name]);
    }

    public function create($username = '', $email = '')
    {
        user::create([
            'username' => $username,
            'email'=> $email
        ]);
    }
}
模型:

use Illuminate\Database\Eloquent\Model as Eloquent;
class user extends Eloquent 
{
    public $name;
    protected $fillable = ['username','email'];
}

我做错了什么以及如何修复它?

在控制器代码中,您需要包含
用户
类:

require_once("user.class.php"); /* or whatever the file is named */
如果这是自动完成的,并且类位于不同的命名空间中,则需要声明在控制器中使用它的意图:

use \my\namespace\user;
或者在代码中使用完全限定的类名:

\my\namespace\user::create();

如果您使用的是
照明/database
,那么很可能您使用的是composer。为什么不添加一个PSR-4自动加载规则并相应地构造代码呢。例如,
composer.json
可能如下所示:

{
    "name": "acme/acme",
    "description": "Acme is this and that",
    "type": "project",
    "require": {
        "php": "^7.2",
        "illuminate/database": "^5.7"
    },
    "autoload": {
      "psr-4": {
        "Acme\\": "src"
      }
    },
    "license": "proprietary"
}
运行
composer安装
将使您成为
供应商/autoloader.php
,这是您需要的唯一文件。您可以将自己的代码放在
Acme
(或您选择的任何名称空间)名称空间中。例如,将用户模型放在
src/model/user.php下,并添加名称空间:

<?php

namespace Acme\Model;

use Illuminate\Database\Eloquent\Model as Eloquent;

class User extends Eloquent 
{
    public $name;
    protected $fillable = ['username','email'];
}

什么是
用户
类?您的模型引用的是Laravel类,但其他文件路径与Laravel类不同。您是否尝试过将
用户
大写?
<?php 
// entry point file

require_once('vendor/autoload.php');

use Acme\Model\User;
$user = new User();
// ...