2016-05-30 7 views
1

私はvideo tutorialシリーズをフォローしており、データベースの情報を表示するページにユーザーをルーティングしています。彼はlocalhost Sequelを使用しています。AWS EC2インスタンスでMysqlを実行しています。ここで AWS EC2インスタンスで実行されているlaravel 5.2を使用してデータベースからプルできません

は誤りである私のroutes.phpの

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) 

内容私のモデルの

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についてはわかりません。なぜなら、データベースの問題はさておき、これでうまく動作するからです。ここで

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

答えて

0

あなたが慣れ得れば、あなたは以下のエラー

モデルの製品は、デフォルトでは、テーブル名「製品」(モデル名の複数)を探しますされます表示されますPSR名すなわち製品(product_listない)を使ってモデルを整理します変更する場合は、保護されたクラスvar $ table = "your_table_name"を設定してください。関係を使用する場合は、テーブル名をどこにでも設定する必要があります。あなたはphp artisan keyを実行している間は影響を受けないか、更新しません:不正なアクセス権を持っている可能性があります。

.invではchmod 755を、ストレージおよびブートストラップフォルダでは755または777を設定します。

は、移行テーブルを作成する基本的に、DB接続が働いてチェック職人

php artisan migrate を経由して移行を実行するには

、まだあなたのクラスがロードされていない場合は、実行作曲更新

composer dump-autoクラスをコンパイルするphp artisan optimize

ubuntuシステムでは、新しいユーザーを作成してprojecを更新する方が良いtフォルダと同じで、ルート(またはAWS EC2のubuntuユーザー)を使用していない

1

Laravel雄弁はモデル自体の複数あるテーブルにアクセスしようとした私のインスタンスの/etc/phpmyadmin/config-db.phpの内容です。だからあなたのクラス名はproducts_listで、products_listsという名前のテーブルを見つけようとします。カスタム名を使用している場合は、テーブル名を設定:キーについては

namespace App; 

use Illuminate\Database\Eloquent\Model; 

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

を、ちょうどあなた自身を生成します。

php artisan key:generate 
+0

迅速な対応をありがとう!保護されたテーブルに追加し、 'SQLSTATE [42S02]:基本テーブルまたはビューが見つかりません:1146テーブル 'phpmyadmin.paidfor'が存在しません。私はあなたにテーブルが存在することを保証します:) –

+0

まあ、そのようなテーブルはありますか?データベース 'phpmyadmin'はありますか?あなたの.envに 'DB_DATABASE = localhost'と書いてあります。あなたのデータベース名は 'locahost'ですか? – Peon

+0

また、キー生成コマンドを実行すると、 'APP_KEY = SomeRandomString'の中で'アプリケーション鍵[base64:gCLSkk0aE7PfLmI8Nztvy8BlLhsg6c9zESTG6AUc/00 =]が正常に設定されました。 ' –

0

それは私の問題は、モデル

とあったが判明Laravelはデフォルトでデータベースphambyadminを検索しているため、

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

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

である必要があります。これは私が望むものではありません。私の回避策は、モデルを修正し、products_listと呼ばれるphpmyadmin内のテーブルを作成することでした。

関連する問題