Php 为什么不是';";“用户”;找到班级了吗?
我正在使用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 这是我在主页上使用的代码: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
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();
// ...