< onga blog >

開発に関することなど。

laravel Eloquent操作

Onga.inc

laravel Eloquent http://laravel.com/docs/4.2/eloquent

<?php
$users = User::all();
?>

すべてのレコードを取得

<?php
$user = User::find(1);

var_dump($user->name);
?>

プライマリーキーから取得

<?php
$model = User::findOrFail(1);
var_dump($user->name);
?>

findOrFailを使用することにより、 catch the exceptions でエラーのキャッチ可能。

<?php
use Illuminate\Database\Eloquent\ModelNotFoundException;

App::error(function(ModelNotFoundException $e)
{
    return Response::make('Not Found', 404);
});
?>

モデルエラーを上記でキャッチ可能

<?php
$model = User::where('votes', '>', 100)->firstOrFail();
?>

where文

<?php
$users = User::where('votes', '>', 100)->take(10)->get();
?>

takeを使用

<?php
$count = User::where('votes', '>', 100)->count();
?>

countを取得

<?php
$user = User::on('connection-name')->find(1);
?>

databaseを指定しての接続

<?php
$user = User::find(1);
$user->email = 'john@foo.com';
$user->save();
?>

レコードの更新

<?php
$user = User::find(1);
$user->delete();
?>

レコードの削除

<?php
User::destroy(1);
User::destroy(array(1, 2, 3));
User::destroy(1, 2, 3);
?>

レコードの削除

<?php
$user->touch();
?>

タイムスタンプの更新

リレーション

<?php
class User extends Eloquent {
 
    public function phone()
    {
        return $this->hasOne('Phone');
    }
 
}
?>

リエーションの定義

<?php
$phone = User::find(1)->phone;
?>

配列とJSONへの変換

<?php
return User::all()->toArray();
?>

配列への変換

<?php
return User::find(1)->toJson();
?>

配列への変換

<?php
Route::get('users', function()
{
    return User::all();
});
?>

モデルをルートでリターンする

コレクション

<?php
$roles = User::find(1)->roles;
 
if ($roles->contains(2))
{
    //
}
?>

結果に指定したキーが含まれているかを調べる。