laravel 中 get() 和 all() 的区别

问题描述 投票:0回答:3

这两者在laravel中有什么区别

$input = Input::get();

还有

$input = Input::all();

我应该更喜欢哪一个。

php laravel laravel-4
3个回答
16
投票

取自 Laravel 来源:

public static function all()
{
   $input = array_merge(static::get(), static::query(), static::file());
   // ....
   return $input;
}

因此

all()
调用
get()
并返回其内容以及
query()
file()
$_FILES 超全局变量。

偏好显然取决于具体情况。我个人选择使用

Input::get($key, $default)
,因为我通常知道我在追求什么。


3
投票

来自 Laravel 手册:http://laravel.com/docs/input

从输入数组中检索一个值:

$email = Input::get('email');

注意:“get”方法适用于所有请求类型(GET、POST、PUT 和 DELETE),而不仅仅是 GET 请求。

从输入数组中检索所有输入:

$input = Input::get();

检索所有输入,包括 $_FILES 数组:

$input = Input::all();

默认情况下,如果输入项不存在,则返回null。但是,您可以将不同的默认值作为第二个参数传递给该方法:


0
投票

我意识到这是一个较旧的线程,但我正在分享我的想法,以防它对某人有利。

这是两者之间的主要区别

过滤:

get() allows you to apply conditions and filters before retrieving data.
all() retrieves all records without any filtering.

链接

get() can be chained with other query builder methods to build complex queries.
all() cannot be chained with other query builder methods; it simply retrieves everything.

性能

get() can be more efficient if you’re only interested in a subset of records.
all() retrieves all records, which can be inefficient for large datasets.

何时使用哪个?

Use get(): When you must apply conditions, filters, or limits to your query. 

Use all(): When retrieving all records from a table without any conditions. It's straightforward and useful for cases where you want all data.
© www.soinside.com 2019 - 2024. All rights reserved.