facebook twitter hatena line email

Php/composer/Eloquent

提供: 初心者エンジニアの簡易メモ
2019年2月21日 (木) 16:48時点におけるAdmin (トーク | 投稿記録)による版 (userのテーブル取得)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

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';
}

参考

https://akamist.com/blog/archives/1041