我正在关注video tutorial系列,并且我将用户路由到显示来自数据库的信息的页面。他正在使用localhost 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';
答案 0 :(得分:1)
Laravel Eloquent尝试访问模型本身的复数表。这就是为什么您的类名为include ("add.php"); - where the input forms are
并且它试图找到名为products_list
的表的原因。如果您使用的是自定义名称,请设置表名:
products_lists
至于密钥,只需生成自己的密钥:
namespace App;
use Illuminate\Database\Eloquent\Model;
class products_list extends Model
{
protected $table = 'your_custom_name';
}
答案 1 :(得分:0)
事实证明我的问题是模型
应该是
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class products_list extends Model
{
protected $table = 'products_list';
}
因为Laravel默认情况下会查看数据库phpmyadmin
这不是我想要的。我的解决方法是修改模型并在phpmyadmin中创建一个名为products_list
的表。
答案 2 :(得分:0)
使用PSR名称组织您的模型,即产品(不是product_list),一旦您习惯了,您将看到更少的错误
模型产品默认会查找表名“products”(模型名称的复数),如果你想要更改它,设置受保护的类var $ table =“your_table_name”虽然不推荐,因为如果你使用关系,你必须在任何地方设置表名,最好遵循惯例
如果你运行php artisan key时你的.env没有影响或更新:生成可能你的权限不正确
在.env上设置chmod 755,在存储和引导文件夹上设置755或777。
检查数据库连接是否正常,通过artisan运行迁移
php artisan migrate
在基本它将创建迁移表
如果仍未加载您的类,请运行composer update
composer dump-auto
或php artisan optimize
将编译类
在ubuntu系统上,最好创建一个新用户并使用相同而不是使用root(或AWS EC2上的ubuntu用户)更新项目文件夹