Eloquentを単品で使用

https://qiita.com/IganinTea/items/16bad23bd4e4cbed337a

 

 

テーブル作成

Laravelでマイグレーションを行うのと同様のコードで実装できます。

require_once 'bootstrap.php';

use Illuminate\Database\Capsule\Manager as Capsule;

Capsule::schema()->create('users', function ($table) {
    $table->increments('id');
    $table->string('email');
    $table->timestamps();
});

実践

実際に使用する方法を記載していきます。
Eloquentではクエリービルダーを使用する方法とモデルを作成して使用する方法があると思いますが、これは単品で使用する時も同様です。

クエリ発行

クエリービルダーを使用する方法です。
コメントアウトしてある行とその下の行は同じ動きをするものです。

挿入

require_once 'bootstrap.php';

use Illuminate\Database\Capsule\Manager as Capsule;

//$result = Capsule::insert('insert into users VALUES (null, "test@example.com", null, null)');
$result = Capsule::table('users')->insert([
    'email' => 'test@example.com'
]);

選択

require_once 'bootstrap.php';

use Illuminate\Database\Capsule\Manager as Capsule;

//$result = Capsule::select('select * from users');
$result = Capsule::table('users')->select('*')->get()->toArray();

更新

require_once 'bootstrap.php';

use Illuminate\Database\Capsule\Manager as Capsule;

//$result = Capsule::update('update users set email = "change@example.com" where id = 1;');
$result = Capsule::table('users')
    ->where('id', 1)
    ->update(['email' => 'change@example.com']);

削除

require_once 'bootstrap.php';

use Illuminate\Database\Capsule\Manager as Capsule;

//$result = Capsule::delete('DELETE FROM users WHERE id = 6');
$result = Capsule::table('users')->delete(3);

モデル作成

もちろんモデルを作成して、各メソッドを呼び出すこともできます。

namespace Model;

use Illuminate\Database\Eloquent\Model as EloquentModel;

class User extends EloquentModel
{
    protected $fillable = ['email'];
}

挿入

require_once 'bootstrap.php';

use Model\User;

//$user = new User;
//$user->email = 'test@example.com';
//$user->save();

$user = User::create([
    'email' => 'test2@example.com'
]);

選択

require_once 'bootstrap.php';

use Model\User;

$userArray = User::find(1);

更新

require_once 'bootstrap.php';

use Model\User;

$user = User::find(1);
$user->update([
    'email' => 'change@example.com'
]);

削除

require_once 'bootstrap.php';

use Model\User;

User::find(2)->delete();

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です