Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel 5.4中多次使用变量模型_Php_Laravel_Laravel 5.4 - Fatal编程技术网

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

Php 如何在laravel 5.4中多次使用变量模型,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,如何多次使用变量模型,类似以下代码: $Db = Model::where(['user_id'=>1]); $Db->first(); $Db->get(); $Db->delete(); 我不想对get、first、delete等使用repeat$Db 例如,我不喜欢使用像这样的错误代码: $Db = Model::where(['user_id'=>1])->first(); $Db = Model::where(['user_id'=>1

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

$Db = Model::where(['user_id'=>1]);

$Db->first();

$Db->get();

$Db->delete();
我不想对get、first、delete等使用repeat
$Db
例如,我不喜欢使用像这样的错误代码:

$Db = Model::where(['user_id'=>1])->first();
$Db = Model::where(['user_id'=>1])->get();
$Db = Model::where(['user_id'=>1])->delete();
或者


对于任何
first()
get()
或…

我都需要单独的类对象。我没有测试过这一点,但尝试使用查询生成器

另一种选择是使用闭包

$model = function() {
    return Model::where(['user_id'=>1]);
};

$model()->get();
$model()->first();
$model()->delete();
同样,未测试:)

您可以使用:

$Db = Model::where(['user_id'=>1]);

with(clone($Db))->first();

with(clone($Db))->get();

with(clone($Db))->delete();

最好的方法是创建一个帮助器或类

//创造

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

我不明白你的问题,你想在几个控制器和视图之间共享你的变量吗?@wahdan不,我不想每次使用
first()
get()$Db->first(),请在这之后使用code>
这不起作用,因为您首先为
first()
这样做,您的第一个示例中有什么不起作用?只要您不覆盖
$Db
,您就应该能够重新使用相同的查询生成器。您的意思是我们不能将
模型
用于此方法?因为我在那个模型里有关系。我是如何使用查询生成器的?据我所知不是这样,但我也从未尝试过,所以我不能肯定。正确的。我和那个模特有关系。如果我使用查询生成器,如何使用它?我不认为使用查询生成器选择模型是可能的:(你可以进行连接,但如果你的应用程序依赖于模型,那么这可能不是正确的解决方案you@MikelWilliams请参阅更新,您可以使用匿名函数以避免重复代码
Helpers:user_info(1)->first();
Helpers:user_info(1)->get();
Helpers:user_info(1)->delete();