如何多次使用变量模型,如下代码:
$Db = Model::where(['user_id'=>1]);
$Db->first();
$Db->get();
$Db->delete();
我不想使用重复$Db
进行get,first,delete等
例如,我不喜欢使用这样的错误代码:
$Db = Model::where(['user_id'=>1])->first();
$Db = Model::where(['user_id'=>1])->get();
$Db = Model::where(['user_id'=>1])->delete();
或......
我想要任何first()
或get()
或...
答案 0 :(得分:2)
我还没有对此进行测试,但尝试使用查询构建器https://laravel.com/docs/5.4/queries#introduction
$qb = DB::table('users')->where('votes', '>', 100);
$qb->get();
$qb->first();
$qb->delete();
另一个选择是使用闭包
$model = function() {
return Model::where(['user_id'=>1]);
};
$model()->get();
$model()->first();
$model()->delete();
再次,未经测试:)
答案 1 :(得分:1)
您可以使用:
$Db = Model::where(['user_id'=>1]);
with(clone($Db))->first();
with(clone($Db))->get();
with(clone($Db))->delete();
答案 2 :(得分:0)
您可以做的最好的方法是创建帮助器或类。
//创建
public static function user_info($user_id) {
return Model::where(['user_id' => $user_id]);
}
//调用
Helpers:user_info(1)->first();
Helpers:user_info(1)->get();
Helpers:user_info(1)->delete();