laravel的ORM操作集合

1、查询

1.1 检索所有模型        $users=User::all();

1.2 通过主键检索记录        $user=User::find(1);var_dump($user->name);

1.3通过主键检索模型或抛出异常

有时,如果找不到模型,您可能希望抛出异常,允许您使用处理程序捕获异常并显示404页面。App::error

$model=User::findOrFail(1);$model=User::where('votes','>',100)->firstOrFail();

要注册错误处理程序,请监听 ModelNotFoundException

useIlluminate\Database\Eloquent\ModelNotFoundException;

App::error(function(ModelNotFoundException$e){returnResponse::make('Not Found',404);});

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

2、更新

2.1 要更新模型,您可以检索它,更改属性并使用该save方法:

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

2.2对一组模型运行更新作为查询:

$affectedRows=User::where('votes','>',100)->update(array('status'=>2));

3、插入

3.1 创建一个新的模型实例并调用该save方法:

$user=newUser;

$user->name='John';

$user->save();

3.2  使用模型创建方法

$user=User::create(array('name'=>'John'));

$user=User::firstOrCreate(array('name'=>'John'));

$user=User::firstOrNew(array('name'=>'John'));

4、删除

4.1  只需delete在实例上调用方法:

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

4.2  在一组模型上运行删除查询:

$affectedRows=User::where('votes','>',100)->delete();

5、软删除

5.1 要为模型启用软删除,请将SoftDeletingTrait其应用于模型:

useIlluminate\Database\Eloquent\SoftDeletingTrait;

class User  extends  Eloquent

{

use SoftDeletingTrait;

protected$dates=['deleted_at'];

}

5.2  使用softDeletes迁移中的方法:

$table->softDeletes();

6.软删除结果查询

6.1 强制软删除的模型出现在结果集中,使用withTrashed查询中的方法:

$users=User::withTrashed()->where('account_id',1)->get();

6.2  在结果中收到软删除的模型,可以使用以下onlyTrashed方法:

$users=User::onlyTrashed()->where('account_id',1)->get();

6.3  将软删除的模型恢复为活动状态,请使用以下restore方法:

$user->restore();

6.4  您希望真正从数据库中删除模型,可以使用以下forceDelete方法:

$user->forceDelete();

7、转为JSON/数组

7.1  要将模型及其加载的关系转换为数组,您可以使用以下toArray方法:

$user=User::with('roles')->first();     return     $user->toArray();

7.2  整个模型集合也可以转换为数组:

return  User::all()->toArray();

7.3  要将模型转换为JSON,您可以使用以下toJson方法:

returnUser::find(1)->toJson();

7.4  隐藏数组或JSON转换的属性

有时您可能希望限制模型的数组或JSON表单中包含的属性,例如密码。为此,请hidden向模型添加属性定义:

class    User    extends    Eloquent

{

    protected    $hidden=array('password');

}

7.5  使用该visible属性来定义白名单:

protected  $visible  =  array('first_name','last_name');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。