「Php/composer/Eloquent」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→Eloquentとは) |
(→userのテーブル取得) |
||
(同じ利用者による、間の12版が非表示) | |||
行4: | 行4: | ||
==インストール== | ==インストール== | ||
php composer.phar require illuminate/database | php composer.phar require illuminate/database | ||
+ | |||
+ | ==サンプル== | ||
+ | <pre> | ||
+ | require_once 'vendor/autoload.php'; | ||
+ | $db = new Illuminate\Database\Capsule\Manager; | ||
+ | $db->addConnection([ | ||
+ | 'driver' => 'mysql', | ||
+ | 'host' => 'hogehoge.com', | ||
+ | 'database' => 'test', | ||
+ | 'username' => 'root', | ||
+ | 'password' => '', | ||
+ | 'charset' => 'utf8', | ||
+ | 'collation' => 'utf8_unicode_ci', | ||
+ | 'prefix' => '', | ||
+ | ]); | ||
+ | $db->setAsGlobal(); | ||
+ | $db->bootEloquent(); | ||
+ | // schemalist | ||
+ | $rows = $db::select('show databases'); | ||
+ | foreach($rows as $row) { | ||
+ | echo array_pop($row) . "\n"; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==テーブル一覧サンプル== | ||
+ | <pre> | ||
+ | $rows = $db::select('show tables'); | ||
+ | foreach($rows as $row) { | ||
+ | echo array_pop($row) . "\n"; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==userのテーブル取得== | ||
+ | <pre> | ||
+ | class User extends Illuminate\Database\Eloquent\Model | ||
+ | { | ||
+ | } | ||
+ | $user = User::find(1); | ||
+ | if ($user) { | ||
+ | echo print_r($user->toArray(),1); | ||
+ | echo $user->toArray()['name'] . "\n"; | ||
+ | } | ||
+ | $users = User::where("id", 1)->limit(1)->get(); | ||
+ | if ($users) { | ||
+ | echo print_r($users->toArray(),1); | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==テーブル取得で以下エラーが出るとき== | ||
+ | テーブル名を明示的に指定してあげる | ||
+ | Base table or view not found: 1146 Table | ||
+ | <pre> | ||
+ | class Media extends Illuminate\Database\Eloquent\Model | ||
+ | { | ||
+ | protected $table = 'medias'; | ||
+ | } | ||
+ | </pre> | ||
==参考== | ==参考== | ||
https://akamist.com/blog/archives/1041 | https://akamist.com/blog/archives/1041 |
2019年2月21日 (木) 16:48時点における最新版
Eloquentとは
laravelなどで使われてるdbライブラリ
インストール
php composer.phar require illuminate/database
サンプル
require_once 'vendor/autoload.php'; $db = new Illuminate\Database\Capsule\Manager; $db->addConnection([ 'driver' => 'mysql', 'host' => 'hogehoge.com', 'database' => 'test', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); $db->setAsGlobal(); $db->bootEloquent(); // schemalist $rows = $db::select('show databases'); foreach($rows as $row) { echo array_pop($row) . "\n"; }
テーブル一覧サンプル
$rows = $db::select('show tables'); foreach($rows as $row) { echo array_pop($row) . "\n"; }
userのテーブル取得
class User extends Illuminate\Database\Eloquent\Model { } $user = User::find(1); if ($user) { echo print_r($user->toArray(),1); echo $user->toArray()['name'] . "\n"; } $users = User::where("id", 1)->limit(1)->get(); if ($users) { echo print_r($users->toArray(),1); }
テーブル取得で以下エラーが出るとき
テーブル名を明示的に指定してあげる
Base table or view not found: 1146 Table
class Media extends Illuminate\Database\Eloquent\Model { protected $table = 'medias'; }