facebook twitter hatena line email

「Php/composer/Eloquent」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(サンプル)
(userのテーブル取得)
 
(同じ利用者による、間の9版が非表示)
行24: 行24:
 
$rows = $db::select('show databases');
 
$rows = $db::select('show databases');
 
foreach($rows as $row) {
 
foreach($rows as $row) {
     echo $row['Database'] . PHP_EOL;
+
     echo array_pop($row) . "\n";
 
}
 
}
 
</pre>
 
</pre>
行31: 行31:
 
<pre>
 
<pre>
 
$rows = $db::select('show tables');
 
$rows = $db::select('show tables');
print nl2br(print_r($rows,1));exit;
 
 
foreach($rows as $row) {
 
foreach($rows as $row) {
     echo $row['Tables_in_table1'] . PHP_EOL;
+
     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>
 
</pre>

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

参考

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