如何在laravel 5.4中多次使用变量模型

时间:2017-07-31 22:41:19

标签: php laravel laravel-5.4

如何多次使用变量模型,如下代码:

$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()或...

的单独的类对象

3 个答案:

答案 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();