gpt4 book ai didi

php - 无法使用 Laravel Eloquent 的现有表

转载 作者:行者123 更新时间:2023-11-29 09:59:03 25 4
gpt4 key购买 nike

所以我一直在尝试遵循一些在线链接来了解如何使用 eloquent 来定义表中的关系。我实际上想尝试的是使用现有的表来创建模型,然后使用 eloquent 定义关系。现在我没有使用迁移,因为我已经创建了表并在database.php 以及.env 文件中配置了连接和其他设置(mysql)。

以下是我的文章模式:

<?php

namespace App;


use Illuminate\Database\Eloquent\Model;


class Article extends Model
{

protected $table = 'articles';

}

由于我没有使用任何迁移,因此我指定了我的表名称(文章),其中我已经插入了一些数据。现在只是为了检查模式是否正常工作,我尝试在 web.php 中给出一条路由,如下所示:

<?php

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

echo Article::all();
});

但是现在当尝试在服务器上运行相同的内容时,它给我一个错误,提示“未找到类文章”。这里似乎有什么问题?

以下是我的 .env 文件:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:RVOuXWd9zPWrrdIEIHoezPBrfQqHPTihq4WUgXk3xjU=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=shetty@123
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

以下是database.php文件:

<?php

return [


'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [

'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
],

'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'test'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'shetty@123'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],

'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],

'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],

],


'migrations' => 'migrations',


'redis' => [

'client' => 'predis',

'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],

],

];

最佳答案

问题是您的 Article 类与您的路由文件位于不同的命名空间中。

在路由文件的顶部包含以下语句:

use App\Article;

您现在可以在路由闭包中将 Article 类引用为 Article::method();

或者,在调用 all() 之前,如下所示:

\App\Article:all();

但请确保您执行其中一项,而不是同时执行两项,因为这是不必要的。

关于php - 无法使用 Laravel Eloquent 的现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53367901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com