php - 无法使用在 AWS EC2 实例上运行的 laravel 5.2 从数据库中提取数据

标签 php mysql laravel amazon-ec2 laravel-5

我正在关注 video tutorial系列,我被困在将用户路由到显示数据库信息的页面。他使用本地主机 Sequel,而我在 AWS EC2 实例上运行 Mysql。

这里是错误

QueryException in Connection.php line 713:
SQLSTATE[42S02]: Base table or view not found: 1146 Table
'phpmyadmin.products_lists' doesn't exist (SQL: select * from 
`products_lists` where `products_lists`.`id` = 7 limit 1)

我的 routes.php 的内容

Route::get('product', function() {
//echo 'hello';
$product = App\products_list::find(7);
print_r($product);
});

Route::group(['middleware' => ['web']], function(){

});

我的模型的内容

namespace App;

use Illuminate\Database\Eloquent\Model;

class products_list extends Model
{
    //
}

和我的 .env 的内容

APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=
DB_DATABASE=localhost
DB_USERNAME=root
DB_PASSWORD=snipsnip

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

请注意我的错误是 'phpmyadmin.products_lists' 但我不明白为什么 larval 坚持保留我以前的 .env 文件中的数据。 另外,我不确定 APP_KEY=SomeRandomString 因为除了数据库问题之外,它运行良好。

这是我实例的/etc/phpmyadmin/config-db.php 的内容

$dbuser='phpmyadmin';
$dbpass='snipsnip';
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';

最佳答案

Laravel Eloquent 尝试访问模型本身的复数形式的表。这就是为什么你的类名是 products_list 并且它试图找到一个名为 products_lists 的表。如果您使用的是自定义名称,则设置表名:

namespace App;

use Illuminate\Database\Eloquent\Model;

class products_list extends Model
{
    protected $table = 'your_custom_name';
}

至于 key ,自己生成即可:

php artisan key:generate

关于php - 无法使用在 AWS EC2 实例上运行的 laravel 5.2 从数据库中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37527910/

相关文章:

php - 使用 Laravel 获取记录时遇到问题

php - 系统抓取邮件

php - 为什么serialize() 会破坏我的更新?

mysql - 谷歌云 SQL 到外部奴隶 - 无法让 SSL 工作

MySQL。应使用什么隔离级别?

mysql - 数据库错误(MySQL)

php - 多语言 PHP 应用程序 : best practice?

php - Laravel中的错误处理

php - 在何处为可点击的 div (CSS) 添加 URL

laravel - 方法列表不存在