Laravel chứa một loạt các hàm PHP global "helper". Nhiều trong số các hàm này được sử dụng bởi chính framework; tuy nhiên, bạn có thể thoải mái sử dụng chúng trong application của bạn nếu bạn thấy chúng tiện ích.
Arr::add Arr::collapse Arr::divide Arr::dot Arr::except Arr::first Arr::flatten Arr::forget Arr::get Arr::has Arr::last Arr::only Arr::pluck Arr::prepend Arr::pull Arr::random Arr::set Arr::sort Arr::sortRecursive Arr::where Arr::wrap data_fill data_get data_set head last
__ class_basename e preg_replace_array Str::after Str::before Str::camel Str::contains Str::containsAll Str::endsWith Str::finish Str::is Str::kebab Str::limit Str::orderedUuid Str::plural Str::random Str::replaceArray Str::replaceFirst Str::replaceLast Str::singular Str::slug Str::snake Str::start Str::startsWith Str::studly Str::title Str::uuid Str::words trans trans_choice
abort abort_if abort_unless app auth back bcrypt blank broadcast cache class_uses_recursive collect config cookie csrf_field csrf_token dd decrypt dispatch dispatch_now dump encrypt env event factory filled info logger method_field now old optional policy redirect report request rescue resolve response retry session tap throw_if throw_unless today trait_uses_recursive transform validator value view with
Arr::add()
Hàm Arr::add
sẽ thêm một cặp key / giá trị vào một mảng nếu key đó không tồn tại trong mảng hoặc giá trị trong mảng của key đó bằng null
:
use Illuminate\Support\Arr;
$array = Arr::add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]
$array = Arr::add(['name' => 'Desk', 'price' => null], 'price', 100);
// ['name' => 'Desk', 'price' => 100]
Arr::collapse()
Hàm Arr::collapse
sẽ thu gọn một mảng gồm nhiều mảng con thành một mảng duy nhất:
use Illuminate\Support\Arr;
$array = Arr::collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
Arr::divide()
Hàm Arr::divide
trả về hai mảng, một mảng chứa các key và một mảng chứa các giá trị của mảng đã cho:
use Illuminate\Support\Arr;
[$keys, $values] = Arr::divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']
Arr::dot()
Hàm Arr::dot
sẽ làm ngang hàng một mảng nhiều chiều thành một mảng một chiều sử dụng ký hiệu "dot" để biểu thị độ sâu:
use Illuminate\Support\Arr;
$array = ['products' => ['desk' => ['price' => 100]]];
$flattened = Arr::dot($array);
// ['products.desk.price' => 100]
Arr::except()
Hàm Arr::except
loại bỏ các cặp key / giá trị đã cho ra khỏi một mảng:
use Illuminate\Support\Arr;
$array = ['name' => 'Desk', 'price' => 100];
$filtered = Arr::except($array, ['price']);
// ['name' => 'Desk']
Arr::first()
Hàm Arr::first
trả về phần tử đầu tiên của mảng pass qua một số điều kiện đã cho:
use Illuminate\Support\Arr;
$array = [100, 200, 300];
$first = Arr::first($array, function ($value, $key) {
return $value >= 150;
});
// 200
Một giá trị mặc định cũng có thể được truyền làm tham số thứ ba cho phương thức. Giá trị này sẽ được trả về nếu không có giá trị nào được pass qua điều kiện:
use Illuminate\Support\Arr;
$first = Arr::first($array, $callback, $default);
Arr::flatten()
Hàm Arr::flatten
làm ngang hàng một mảng nhiều chiều thành một mảng một chiều:
use Illuminate\Support\Arr;
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$flattened = Arr::flatten($array);
// ['Joe', 'PHP', 'Ruby']
Arr::forget()
Hàm Arr::forget
xóa một cặp key / giá trị đã cho ra khỏi một mảng bị lồng vào nhau bằng cách sử dụng ký hiệu "dot":
use Illuminate\Support\Arr;
$array = ['products' => ['desk' => ['price' => 100]]];
Arr::forget($array, 'products.desk');
// ['products' => []]
Arr::get()
Hàm Arr::get
lấy một giá trị từ một mảng bị lồng vào nhau bằng cách sử dụng ký hiệu "dot":
use Illuminate\Support\Arr;
$array = ['products' => ['desk' => ['price' => 100]]];
$price = Arr::get($array, 'products.desk.price');
// 100
Hàm Arr::get
cũng chấp nhận một giá trị mặc định, sẽ được trả về nếu không tìm thấy key:
use Illuminate\Support\Arr;
$discount = Arr::get($array, 'products.desk.discount', 0);
// 0
Arr::has()
Hàm Arr::has
sẽ kiểm tra xem một item hoặc các item đã cho có tồn tại trong một mảng hay không bằng cách sử dụng ký hiệu "dot":
use Illuminate\Support\Arr;
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
$contains = Arr::has($array, 'product.name');
// true
$contains = Arr::has($array, ['product.price', 'product.discount']);
// false
Arr::last()
Hàm Arr::last
trả về phần tử cuối cùng của mảng pass qua một số điều kiện đã cho:
use Illuminate\Support\Arr;
$array = [100, 200, 300, 110];
$last = Arr::last($array, function ($value, $key) {
return $value >= 150;
});
// 300
Một giá trị mặc định có thể được truyền làm tham số thứ ba cho phương thức. Giá trị này sẽ được trả về nếu không có giá trị nào pass qua điều kiện:
use Illuminate\Support\Arr;
$last = Arr::last($array, $callback, $default);
Arr::only()
Hàm Arr::only
chỉ trả về các cặp key / giá trị được chỉ định từ mảng đã cho:
use Illuminate\Support\Arr;
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$slice = Arr::only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]
Arr::pluck()
Hàm Arr::pluck
lấy tất cả các giá trị cho một key đã cho từ một mảng:
use Illuminate\Support\Arr;
$array = [
['developer' => ['id' => 1, 'name' => 'Taylor']],
['developer' => ['id' => 2, 'name' => 'Abigail']],
];
$names = Arr::pluck($array, 'developer.name');
// ['Taylor', 'Abigail']
Bạn cũng có thể khai báo thêm key cho mảng đó:
use Illuminate\Support\Arr;
$names = Arr::pluck($array, 'developer.name', 'developer.id');
// [1 => 'Taylor', 2 => 'Abigail']
Arr::prepend()
Hàm Arr::prepend
sẽ thêm một item lên đầu của một mảng:
use Illuminate\Support\Arr;
$array = ['one', 'two', 'three', 'four'];
$array = Arr::prepend($array, 'zero');
// ['zero', 'one', 'two', 'three', 'four']
Nếu cần, bạn có thể khai báo key cho giá trị đó:
use Illuminate\Support\Arr;
$array = ['price' => 100];
$array = Arr::prepend($array, 'Desk', 'name');
// ['name' => 'Desk', 'price' => 100]
Arr::pull()
Hàm Arr::pull
trả về và xóa một cặp key / giá trị ra khỏi một mảng:
use Illuminate\Support\Arr;
$array = ['name' => 'Desk', 'price' => 100];
$name = Arr::pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]
Một giá trị mặc định có thể được truyền làm tham số thứ ba cho phương thức. Giá trị này sẽ được trả về nếu key không tồn tại:
use Illuminate\Support\Arr;
$value = Arr::pull($array, $key, $default);
Arr::random()
Hàm Arr::random
sẽ trả về một giá trị ngẫu nhiên từ một mảng:
use Illuminate\Support\Arr;
$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);
// 4 - (retrieved randomly)
Bạn cũng có thể chỉ định số lượng item sẽ được trả về làm tham số thứ hai. Lưu ý rằng việc cung cấp tham số này sẽ trả về một mảng, ngay cả khi chỉ có một item mong muốn:
use Illuminate\Support\Arr;
$items = Arr::random($array, 2);
// [2, 5] - (retrieved randomly)
Arr::set()
Hàm Arr::set
sẽ set một giá trị trong một mảng bị lồng nhau bằng cách sử dụng ký hiệu "dot":
use Illuminate\Support\Arr;
$array = ['products' => ['desk' => ['price' => 100]]];
Arr::set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
Arr::sort()
Hàm Arr::sort
sẽ sắp xếp một mảng theo các giá trị của nó:
use Illuminate\Support\Arr;
$array = ['Desk', 'Table', 'Chair'];
$sorted = Arr::sort($array);
// ['Chair', 'Desk', 'Table']
Bạn cũng có thể sắp xếp mảng theo kết quả của Closure đã cho:
use Illuminate\Support\Arr;
$array = [
['name' => 'Desk'],
['name' => 'Table'],
['name' => 'Chair'],
];
$sorted = array_values(Arr::sort($array, function ($value) {
return $value['name'];
}));
/*
[
['name' => 'Chair'],
['name' => 'Desk'],
['name' => 'Table'],
]
*/
Arr::sortRecursive()
Hàm Arr::sortRecursive
sẽ sắp xếp đệ quy một mảng bằng cách sử dụng hàm sort
cho mảng không có key, còn nếu mảng đó có key thì sẽ dùng hàm ksort
:
use Illuminate\Support\Arr;
$array = [
['Roman', 'Taylor', 'Li'],
['PHP', 'Ruby', 'JavaScript'],
['one' => 1, 'two' => 2, 'three' => 3],
];
$sorted = Arr::sortRecursive($array);
/*
[
['JavaScript', 'PHP', 'Ruby'],
['one' => 1, 'three' => 3, 'two' => 2],
['Li', 'Roman', 'Taylor'],
]
*/
Arr::where()
Hàm Arr::where
sẽ lọc một mảng bằng cách sử dụng Closure:
use Illuminate\Support\Arr;
$array = [100, '200', 300, '400', 500];
$filtered = Arr::where($array, function ($value, $key) {
return is_string($value);
});
// [1 => '200', 3 => '400']
Arr::wrap()
Hàm Arr::wrap
sẽ bao bọc giá trị đã cho vào trong một mảng. Nếu giá trị đã cho là một mảng, nó sẽ không bị thay đổi:
use Illuminate\Support\Arr;
$string = 'Laravel';
$array = Arr::wrap($string);
// ['Laravel']
Nếu giá trị đã cho là null, một mảng trống sẽ được trả về:
use Illuminate\Support\Arr;
$nothing = null;
$array = Arr::wrap($nothing);
// []
data_fill()
Hàm data_fill
sẽ set một giá trị bị thiếu trong một mảng hoặc một đối tượng lồng nhau bằng cách sử dụng ký hiệu "dot":
$data = ['products' => ['desk' => ['price' => 100]]];
data_fill($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 100]]]
data_fill($data, 'products.desk.discount', 10);
// ['products' => ['desk' => ['price' => 100, 'discount' => 10]]]
Hàm này cũng chấp nhận dấu hoa thị dưới dạng như một ký tự đại diện và sẽ điền vào mục tiêu tương ứng:
$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2'],
],
];
data_fill($data, 'products.*.price', 200);
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 200],
],
]
*/
data_get()
Hàm data_get
lấy một giá trị từ một mảng hoặc một đối tượng lồng nhau bằng cách sử dụng ký hiệu "dot":
$data = ['products' => ['desk' => ['price' => 100]]];
$price = data_get($data, 'products.desk.price');
// 100
Hàm data_get
cũng chấp nhận một giá trị mặc định, sẽ được trả về nếu không tìm thấy key được chỉ định:
$discount = data_get($data, 'products.desk.discount', 0);
// 0
Phương thức cũng chấp nhận các ký tự đại diện sử dụng bằng dấu hoa thị để có thể lấy ra bất kỳ khóa nào có trong một mảng hoặc một đối tượng:
$data = [
'product-one' => ['name' => 'Desk 1', 'price' => 100],
'product-two' => ['name' => 'Desk 2', 'price' => 150],
];
data_get($data, '*.name');
// ['Desk 1', 'Desk 2'];
data_set()
Hàm data_set
sẽ set một giá trị trong một mảng hoặc một đối tượng lồng nhau bằng cách sử dụng ký hiệu "dot":
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
Hàm này cũng chấp nhận ký tự đại diện và để set giá trị cho mục tiêu tương ứng:
$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 150],
],
];
data_set($data, 'products.*.price', 200);
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 200],
['name' => 'Desk 2', 'price' => 200],
],
]
*/
Mặc định, bất kỳ giá trị hiện có sẽ bị ghi đè. Nếu bạn chỉ muốn set một giá trị nếu nó không tồn tại, bạn có thể truyền false
làm tham số thứ tư:
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200, false);
// ['products' => ['desk' => ['price' => 100]]]
head()
Hàm head
trả về phần tử đầu tiên trong mảng đã cho:
$array = [100, 200, 300];
$first = head($array);
// 100
last()
Hàm last
trả về phần tử cuối cùng trong mảng đã cho:
$array = [100, 200, 300];
$last = last($array);
// 300
app_path()
Hàm app_path
trả về đường dẫn đến thư mục app
. Bạn cũng có thể sử dụng hàm app_path
để tạo đường dẫn đến một file có bắt đầu từ thư mục app:
$path = app_path();
$path = app_path('Http/Controllers/Controller.php');
base_path()
Hàm base_path
trả về đường dẫn đến thư mục gốc dự án. Bạn cũng có thể sử dụng hàm base_path
để tạo đường dẫn đến một file đã cho có bắt đầu từ thư mục gốc của dự án:
$path = base_path();
$path = base_path('vendor/bin');
config_path()
Hàm config_path
trả về đường dẫn đến thư mục config
. Bạn cũng có thể sử dụng hàm config_path
để tạo đường dẫn đến một file đã cho trong thư mục config của application:
$path = config_path();
$path = config_path('app.php');
database_path()
Hàm database_path
trả về đường dẫn đến thư mục database
. Bạn cũng có thể sử dụng hàm database_path
để tạo đường dẫn đến một file đã cho trong thư mục database:
$path = database_path();
$path = database_path('factories/UserFactory.php');
mix()
Hàm mix
trả về đường dẫn đến file Mix đã được version:
$path = mix('css/app.css');
public_path()
Hàm public_path
trả về đường dẫn đến thư mục public
. Bạn cũng có thể sử dụng hàm public_path
để tạo đường dẫn đến một file đã cho trong thư mục public:
$path = public_path();
$path = public_path('css/app.css');
resource_path()
Hàm resource_path
trả về đường dẫn đến thư mục resource
. Bạn cũng có thể sử dụng hàm resource_path
để tạo đường dẫn đến một file đã cho trong thư mục resources:
$path = resource_path();
$path = resource_path('sass/app.scss');
storage_path()
Hàm storage_path
trả về đường dẫn đến thư mụcstorage
. Bạn cũng có thể sử dụng hàm storage_path
để tạo đường dẫn đến một file đã cho trong thư mục storage:
$path = storage_path();
$path = storage_path('app/file.txt');
__()
Hàm __
sẽ dịch chuỗi cần được dịch hoặc key cần được dịch đã cho bằng cách sử dụng localization files của bạn:
echo __('Welcome to our application');
echo __('messages.welcome');
Nếu chuỗi hoặc key cần được dịch không tồn tại, hàm __
sẽ trả về giá trị được đưa vào. Vì vậy, nếu sử dụng ví dụ mẫu trên, hàm __
sẽ trả về messages.welcome
nếu key cần được dịch đó không tồn tại.
class_basename()
class_basename
trả về tên class đã cho với namespace của class bị xóa:
$class = class_basename('Foo\Bar\Baz');
// Baz
e()
Hàm e
chạy hàmhtmlspecialchars
của PHP với tùy chọn double_encode
được set mặc định thành true
:
echo e('<html>foo</html>');
// <html>foo</html>
preg_replace_array()
Hàm preg_replace_array
sẽ thay thế một pattern vào trong một chuỗi sequentially bằng cách sử dụng một mảng:
$string = 'The event will take place between :start and :end';
$replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
Str::after()
Hàm Str::after
trả về mọi thứ đứng sau giá trị đã cho có trong một chuỗi:
use Illuminate\Support\Str;
$slice = Str::after('This is my name', 'This is');
// ' my name'
Str::before()
Hàm Str::before
sẽ trả về mọi thứ đứng trước giá trị đã cho có trong một chuỗi:
use Illuminate\Support\Str;
$slice = Str::before('This is my name', 'my name');
// 'This is '
Str::camel()
Hàm Str::camel
chuyển đổi chuỗi đã cho thành camelCase
:
use Illuminate\Support\Str;
$converted = Str::camel('foo_bar');
// fooBar
Str::contains()
Hàm Str::contains
xác định xem chuỗi đã cho có chứa giá trị đã cho hay không (phân biệt chữ hoa chữ thường):
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', 'my');
// true
Bạn cũng có thể truyền vào một mảng các giá trị để xác định xem chuỗi đã cho có chứa bất kỳ giá trị nào trong mảng không:
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', ['my', 'foo']);
// true
Str::containsAll()
Phương thức Str::containsAll
sẽ xác định xem string đã cho có chứa tất cả các giá trị có trong mảng hay không:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
// true
Str::endsWith()
Hàm Str::endsWith
sẽ kiểm tra chuỗi đã cho có kết thúc bằng giá trị đã cho hay không:
use Illuminate\Support\Str;
$result = Str::endsWith('This is my name', 'name');
// true
Str::finish()
Hàm Str::finish
sẽ thêm một instance của giá trị đã cho vào một chuỗi nếu nó chưa kết thúc bằng giá trị đó:
use Illuminate\Support\Str;
$adjusted = Str::finish('this/string', '/');
// this/string/
$adjusted = Str::finish('this/string/', '/');
// this/string/
Str::is()
Hàm Str::is
sẽ xác định xem một chuỗi đã cho có khớp với pattern đã cho hay không. Dấu hoa thị có thể được sử dụng để làm ký tự đại diện:
use Illuminate\Support\Str;
$matches = Str::is('foo*', 'foobar');
// true
$matches = Str::is('baz*', 'foobar');
// false
Str::kebab()
Hàm Str::kebab
chuyển đổi chuỗi đã cho thành kebab-case
:
use Illuminate\Support\Str;
$converted = Str::kebab('fooBar');
// foo-bar
Str::limit()
Hàm Str::limit
sẽ cắt ngắn chuỗi đã cho ở độ dài nhất định:
use Illuminate\Support\Str;
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);
// The quick brown fox...
Bạn cũng có thể truyền một tham số thứ ba để thay đổi chuỗi sẽ được nối vào cuối chuỗi:
use Illuminate\Support\Str;
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
Str::orderedUuid()
Phương thức Str::orderedUuid
sẽ tạo một UUID "timestamp first" có thể được lưu trữ tốt trong một cột được index trong cơ sở dữ liệu:
use Illuminate\Support\Str;
return (string) Str::orderedUuid();
Str::plural()
Hàm Str::plural
sẽ chuyển đổi một chuỗi thành dạng số nhiều của nó. Chức năng này hiện tại chỉ hỗ trợ ngôn ngữ tiếng Anh:
use Illuminate\Support\Str;
$plural = Str::plural('car');
// cars
$plural = Str::plural('child');
// children
Bạn có thể cung cấp một số nguyên dưới dạng tham số thứ hai cho hàm để lấy dạng số ít hoặc số nhiều của chuỗi:
use Illuminate\Support\Str;
$plural = Str::plural('child', 2);
// children
$plural = Str::plural('child', 1);
// child
Str::random()
Hàm Str::random
sẽ tạo ra một chuỗi ngẫu nhiên có độ dài được chỉ định. Hàm này sử dụng hàm random_bytes
của PHP:
use Illuminate\Support\Str;
$random = Str::random(40);
Str::replaceArray()
Hàm Str::replaceArray
sẽ thay thế một giá trị đã cho vào trong một chuỗi sequentially bằng cách sử dụng một mảng:
use Illuminate\Support\Str;
$string = 'The event will take place between ? and ?';
$replaced = Str::replaceArray('?', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
Str::replaceFirst()
Hàm Str::replaceFirst
sẽ thay thế giá trị đầu tiên có trong chuỗi:
use Illuminate\Support\Str;
$replaced = Str::replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog');
// a quick brown fox jumps over the lazy dog
Str::replaceLast()
Hàm Str::replaceLast
sẽ thay thế giá trị cuối cùng có trong chuỗi:
use Illuminate\Support\Str;
$replaced = Str::replaceLast('the', 'a', 'the quick brown fox jumps over the lazy dog');
// the quick brown fox jumps over a lazy dog
Str::singular()
Hàm Str::singular
sẽ chuyển đổi một chuỗi thành dạng số ít của nó. Chức năng này hiện tại chỉ hỗ trợ ngôn ngữ tiếng Anh:
use Illuminate\Support\Str;
$singular = Str::singular('cars');
// car
$singular = Str::singular('children');
// child
Str::slug()
Hàm Str::slug
sẽ tạo ra một URL "slug" từ chuỗi đã cho:
use Illuminate\Support\Str;
$slug = Str::slug('Laravel 5 Framework', '-');
// laravel-5-framework
Str::snake()
Hàm Str::snake
sẽ chuyển đổi chuỗi đã cho thành Str::snake
:
use Illuminate\Support\Str;
$converted = Str::snake('fooBar');
// foo_bar
Str::start()
Hàm Str::start
sẽ thêm một instance của giá trị đã cho vào một chuỗi nếu nó chưa bắt đầu bằng giá trị đó:
use Illuminate\Support\Str;
$adjusted = Str::start('this/string', '/');
// /this/string
$adjusted = Str::start('/this/string', '/');
// /this/string
Str::startsWith()
Hàm started_with
sẽ kiểm tra chuỗi đã cho có bắt đầu bằng giá trị đã cho hay không:
use Illuminate\Support\Str;
$result = Str::startsWith('This is my name', 'This');
// true
Str::studly()
Hàm Str::studly
chuyển đổi chuỗi đã cho thànhStudlyCase
:
use Illuminate\Support\Str;
$converted = Str::studly('foo_bar');
// FooBar
Str::title()
Hàm Str::title
chuyển đổi chuỗi đã cho thànhTitle Case
:
use Illuminate\Support\Str;
$converted = Str::title('a nice title uses the correct case');
// A Nice Title Uses The Correct Case
Str::uuid()
Phương thức Str::uuid
sẽ tạo ra một UUID (phiên bản 4):
use Illuminate\Support\Str;
return (string) Str::uuid();
Str::words()
Phương thức Str::words
sẽ giới hạn số lượng từ có trong một chuỗi:
use Illuminate\Support\Str;
return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
// Perfectly balanced, as >>>
trans()
Hàm trans
sẽ dịch các key cần dịch bằng cách sử dụng localization files của bạn:
echo trans('messages.welcome');
Nếu key cần dịch mà không tồn tại, hàm trans
sẽ trả về key đó. Vì vậy, nếu sử dụng ví dụ trên, hàm trans
sẽ trả về message.welcome
nếu key cần dịch không tồn tại.
trans_choice()
Hàm trans_choice
sẽ dịch các key cần dịch đã cho với một biến số nhiều:
echo trans_choice('messages.notifications', $unreadCount);
Nếu key cần dịch mà không tồn tại, hàm trans_choice
sẽ trả về key đó. Vì vậy, nếu sử dụng ví dụ trên, hàm trans_choice
sẽ trả về messages.notifications
nếu key cần dịch không tồn tại.
action()
Hàm action
sẽ tạo ra một URL cho một action của controller đã cho. Bạn không cần phải truyền namespace của controller. Thay vào đó, hãy truyền tên class của controller liên kết đến namespace App\Http\Controllers
:
$url = action('HomeController@index');
$url = action([HomeController::class, 'index']);
Nếu phương thức chấp nhận tham số cho route, bạn có thể truyền chúng làm tham số thứ hai cho phương thức:
$url = action('UserController@profile', ['id' => 1]);
asset()
Hàm asset
sẽ tạo URL cho một asset bằng cách sử dụng scheme hiện tại của request (HTTP hoặc HTTPS):
$url = asset('img/photo.jpg');
Bạn có thể cấu hình URL host cho asset bằng cách set biến ASSET_URL
trong file .env
của bạn. Điều này có thể hữu ích nếu bạn đang lưu trữ các asset của bạn trong một dịch vụ bên ngoài như Amazon S3:
// ASSET_URL=http://example.com/assets
$url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg
route()
Hàm route
sẽ tạo một URL cho route đã được đặt tên:
$url = route('routeName');
Nếu route có chấp nhận tham số, bạn có thể truyền chúng làm tham số thứ hai cho phương thức:
$url = route('routeName', ['id' => 1]);
Mặc định, hàm route
sẽ tạo ra một URL tuyệt đối. Nếu bạn muốn tạo một URL tương đối, bạn có thể truyền false
làm tham số thứ ba:
$url = route('routeName', ['id' => 1], false);
secure_asset()
Hàm secure_asset
sẽ tạo URL cho một asset bằng HTTPS:
$url = secure_asset('img/photo.jpg');
secure_url()
Hàm secure_url
tạo URL HTTPS cho đường dẫn đã cho:
$url = secure_url('user/profile');
$url = secure_url('user/profile', [1]);
url()
Hàm url
tạo ra một URL cho đường dẫn đã cho:
$url = url('user/profile');
$url = url('user/profile', [1]);
Nếu không có đường dẫn nào được cung cấp, một instance Illuminate\Routing\UrlGenerator
sẽ được trả về:
$current = url()->current();
$full = url()->full();
$previous = url()->previous();
abort()
Hàm abort
sẽ đưa ra một exception HTTP được tạo bởi exception handler:
abort(403);
Bạn cũng có thể cung cấp response text và response header tùy biến cho exception:
abort(403, 'Unauthorized.', $headers);
abort_if()
Hàm abort_if
sẽ đưa ra một exception HTTP nếu một biểu thức boolean đã cho là true
:
abort_if(! Auth::user()->isAdmin(), 403);
Giống như phương thức abort
, bạn cũng có thể cung cấp response text cho exception làm tham số thứ ba và một mảng các response header tùy biến làm tham số thứ tư.
abort_unless()
Hàm abort_unless
sẽ đưa ra một exception HTTP nếu một biểu thức boolean đã cho là false
:
abort_unless(Auth::user()->isAdmin(), 403);
Giống như phương thức abort
, bạn cũng có thể cung cấp response text cho exception làm tham số thứ ba và một mảng các response header tùy biến làm tham số thứ tư.
app()
Hàm app
trả về instance service container:
$container = app();
Bạn có thể truyền một tên class hoặc một tên interface để resolve nó từ container:
$api = app('HelpSpot\API');
auth()
Hàm auth
sẽ trả về một instance authenticator. Bạn có thể sử dụng nó thay vì dùng facade Auth
cho thuận tiện:
$user = auth()->user();
Nếu cần, bạn có thể khai báo loại instance guard mà bạn muốn truy cập:
$user = auth('admin')->user();
back()
Hàm back
sẽ tạo ra một response HTTP chuyển hướng đến vị trí trước đó của người dùng:
return back($status = 302, $headers = [], $fallback = false);
return back();
bcrypt()
Hàm bcrypt
sẽ hashes giá trị đã cho bằng Bcrypt. Bạn có thể sử dụng nó như là một thay thế cho facade Hash
:
$password = bcrypt('my-secret-password');
blank()
Hàm blank
sẽ trả về giá trị đã cho là "blank" hay không:
blank('');
blank(' ');
blank(null);
blank(collect());
// true
blank(0);
blank(true);
blank(false);
// false
Để tìm trái ngược của blank
, hãy xem phương thức filled
.
broadcast()
Hàm broadcast
sẽ broadcasts một event cho listener của nó:
broadcast(new UserRegistered($user));
cache()
Hàm cache
có thể được sử dụng để lấy các giá trị từ cache. Nếu key đã cho không tồn tại trong cache, giá trị mặc định sẽ được trả về:
$value = cache('key');
$value = cache('key', 'default');
Bạn có thể thêm các item vào cache bằng cách truyền một mảng các cặp key / giá trị cho hàm. Bạn cũng nên truyền thêm số giây hoặc thời gian mà giá trị được lưu trong bộ nhớ cache sẽ được coi là hợp lệ:
cache(['key' => 'value'], 300);
cache(['key' => 'value'], now()->addSeconds(10));
class_uses_recursive()
Hàm class_uses_recursive
sẽ trả về tất cả các trait được sử dụng bởi một class, bao gồm cả các trait được sử dụng bởi tất cả các class cha của nó:
$traits = class_uses_recursive(App\User::class);
collect()
Hàm collect
tạo ra một instance collection từ giá trị đã cho:
$collection = collect(['taylor', 'abigail']);
config()
Hàm config
sẽ lấy giá trị của biến configuration. Các giá trị cấu hình có thể được truy cập bằng cú pháp "dot", bao gồm tên của file và option bạn muốn truy cập. Giá trị mặc định có thể được khai báo và được trả về nếu tùy chọn cấu hình không tồn tại:
$value = config('app.timezone');
$value = config('app.timezone', $default);
Bạn có thể set các biến cấu hình trong thời gian chạy bằng cách truyền một mảng các cặp key / giá trị:
config(['app.debug' => true]);
cookie()
Hàm cookie
tạo một instance cookie mới:
$cookie = cookie('name', 'value', $minutes);
csrf_field()
Hàm csrf_field
sẽ tạo ra một thẻ input hidden
HTML chứa giá trị của CSRF token. Ví dụ: sử dụng Blade syntax:
{{ csrf_field() }}
csrf_token()
Hàm csrf_token
sẽ lấy ra giá trị của CSRF token hiện tại:
$token = csrf_token();
dd()
Hàm dd
sẽ dump các biến đã cho và dừng thực thi lệnh:
dd($value);
dd($value1, $value2, $value3, ...);
Nếu bạn không muốn dừng việc thực thi lệnh của bạn, hãy sử dụng hàm dump
để thay thế.
decrypt()
Hàm decrypt
sẽ giải mã giá trị đã cho bằng cách sử dụng encrypter của Laravel:
$decrypted = decrypt($encrypted_value);
dispatch()
Hàm dispatch
sẽ tạo job vào Laravel job queue:
dispatch(new App\Jobs\SendEmails);
dispatch_now()
Hàm dispatch_now
sẽ chạy ngay lập tức job và trả về giá trị từ phương thức handle
của nó:
$result = dispatch_now(new App\Jobs\SendEmails);
dump()
Hàm dump
sẽ dump các biến đã cho:
dump($value);
dump($value1, $value2, $value3, ...);
Nếu bạn muốn dừng thực thi lệnh sau khi dump các biến, hãy sử dụng hàm dd
để thay thế.
{tip} Bạn có thể sử dụng lệnh
dump-server
của Artisan để chặn tất cả các lệnhdump
và hiển thị chúng trong console thay vì trình duyệt của bạn.
encrypt()
Hàm encrypt
sẽ mã hóa giá trị đã cho bằng cách sử dụng encrypter của Laravel:
$encrypted = encrypt($unencrypted_value);
env()
Hàm env
sẽ lấy ra giá trị của environment variable hoặc trả về giá trị mặc định:
$env = env('APP_ENV');
// Returns 'production' if APP_ENV is not set...
$env = env('APP_ENV', 'production');
{note} Nếu bạn chạy lệnh
config:cache
trong quá trình deploy của bạn, bạn nên chắc chắn rằng bạn chỉ gọi hàmenv
từ các file cấu hình của bạn. Khi các option cấu hình đã được lưu vào cached, file.env
sẽ không được load và tất cả các lệnh gọi đến hàmenv
sẽ trả vềnull
.
event()
Hàm event
sẽ dispatch event đến listener:
event(new UserRegistered($user));
factory()
Hàm factory
sẽ tạo một model factory builder cho một class, tên và số lượng nhất định. Nó có thể được sử dụng trong khi testing hoặc seeding:
$user = factory(App\User::class)->make();
filled()
Hàm filled
sẽ trả về giá trị đã cho không là "blank" hay không:
filled(0);
filled(true);
filled(false);
// true
filled('');
filled(' ');
filled(null);
filled(collect());
// false
Để tìm trái ngược của filled
, hãy xem phương thức blank
.
info()
Hàm info
sẽ ghi thông tin vào log:
info('Some helpful information!');
Một mảng dữ liệu theo ngữ cảnh cũng có thể được truyền cho hàm:
info('User login attempt failed.', ['id' => $user->id]);
logger()
Hàm logger
có thể được sử dụng để viết một thông báo ở mức debug
vào log:
logger('Debug message');
Một mảng dữ liệu theo ngữ cảnh cũng có thể được truyền cho hàm:
logger('User has logged in.', ['id' => $user->id]);
Một instance logger sẽ được trả về nếu không có giá trị nào được truyền vào cho hàm:
logger()->error('You are not allowed here.');
method_field()
Hàm method_field
tạo ra thẻ input hidden
HTML chứa giá trị HTTP action của form. Ví dụ: sử dụng Blade syntax:
<form method="POST">
{{ method_field('DELETE') }}
</form>
now()
Hàm now
sẽ tạo ra một instance Illuminate\Support\Carbon
mới cho thời điểm hiện tại:
$now = now();
old()
Hàm old
sẽ lấy ra một giá trị old input được flash trong session :
$value = old('value');
$value = old('value', 'default');
optional()
Hàm optional
nhận vào bất kỳ tham số nào và cho phép bạn truy cập vào các thuộc tính hoặc các phương thức trên đối tượng đó. Nếu đối tượng đã cho là null
, thì các thuộc tính hoặc các phương thức đó sẽ trả về null
thay vì gây ra lỗi:
return optional($user->address)->street;
{!! old('name', optional($user)->name) !!}
Phương thức optional
cũng chấp nhận một Closure làm tham số thứ hai của nó. Closure sẽ được gọi nếu giá trị tham số đầu tiên không phải là một giá trị null:
return optional(User::find($id), function ($user) {
return new DummyUser;
});
policy()
Phương thức policy
sẽ lấy ra một instance policy cho một class nhất định:
$policy = policy(App\User::class);
redirect()
Hàm redirect
sẽ trả về một response HTTP chuyển hướng hoặc trả về instance chuyển hướng nếu không có tham số được truyền vào:
return redirect($to = null, $status = 302, $headers = [], $secure = null);
return redirect('/home');
return redirect()->route('route.name');
report()
Hàm report
sẽ report một exception bằng cách sử dụng phương thức report
của exception handler của bạn:
report($e);
request()
Hàm request
trả về instance request hiện tại hoặc lấy ra một input item:
$request = request();
$value = request('key', $default);
rescue()
Hàm rescue
sẽ thực thi Closure đã cho và catch bất kỳ exception nào xảy ra trong quá trình thực thi. Tất cả các exception bị catch sẽ được gửi đến phương thức report
của exception handler của bạn; tuy nhiên, request sẽ tiếp tục xử lý:
return rescue(function () {
return $this->method();
});
Bạn cũng có thể truyền tham số thứ hai cho hàm rescue
. Tham số này sẽ là giá trị "default" cần được trả về nếu có exception xảy ra trong khi thực hiện Closure:
return rescue(function () {
return $this->method();
}, false);
return rescue(function () {
return $this->method();
}, function () {
return $this->failure();
});
resolve()
Hàm resolve
sẽ resolve một tên class hoặc một interface đã cho thành một instance của nó bằng cách sử dụng service container:
$api = resolve('HelpSpot\API');
response()
Hàm response
tạo ra một instance response hoặc lấy ra một instance của response factory:
return response('Hello World', 200, $headers);
return response()->json(['foo' => 'bar'], 200, $headers);
retry()
Hàm retry
sẽ thử thực hiện callback đã cho, cho đến khi đạt được ngưỡng thử tối đa nào đó. Nếu callback không đưa ra exception, chính giá trị trả về của nó sẽ được trả về. Nếu callback đưa ra một exception, nó sẽ tự động được thử lại. Nếu vượt quá số lần thử tối đa, exception sẽ bị đưa ra:
return retry(5, function () {
// Attempt 5 times while resting 100ms in between attempts...
}, 100);
session()
Hàm session
có thể được sử dụng để lấy hoặc set các giá trị session values:
$value = session('key');
Bạn có thể set giá trị bằng cách truyền một mảng các cặp key / giá trị cho hàm:
session(['chairs' => 7, 'instruments' => 3]);
Session store sẽ được trả về nếu không có giá trị nào được truyền cho hàm:
$value = session()->get('key');
session()->put('key', $value);
tap()
Hàm tap
sẽ nhận vào hai tham số: một là $value
và một Closure. $value
sẽ được truyền đến phần Closure và sau đó được trả về bởi hàm tap
. Giá trị trả về của Closure sẽ không liên quan:
$user = tap(User::first(), function ($user) {
$user->name = 'taylor';
$user->save();
});
Nếu không có Closure nào được truyền đến hàm tap
, bạn có thể gọi bất kỳ phương thức nào trên $value
đã cho. Giá trị trả về của phương thức bạn gọi sẽ luôn là $value
, bất kể phương thức đó thực sự trả về định nghĩa gì đi chăng nữa. Ví dụ, phương thức update
Eloquent thường trả về một số nguyên. Tuy nhiên, chúng ta có thể buộc phương thức này trả về chính model đó bằng cách gọi phương thức update
thông qua hàm tap
:
$user = tap($user)->update([
'name' => $name,
'email' => $email,
]);
Để thêm một phương thức tap
vào một class, bạn có thể thêm trait Illuminate\Support\Traits\Tappable
vào class. Phương thức tap
của trait này sẽ chấp nhận một Closure làm tham số duy nhất của nó. Chính instance đối tượng sẽ được truyền đến Closure và sau đó được trả về bởi phương thức tap
:
return $user->tap(function ($user) {
//
});
throw_if()
Hàm throw_if
sẽ đưa ra exception đã cho nếu một biểu thức boolean đã cho là true
:
throw_if(! Auth::user()->isAdmin(), AuthorizationException::class);
throw_if(
! Auth::user()->isAdmin(),
AuthorizationException::class,
'You are not allowed to access this page'
);
throw_unless()
Hàm throw_unless
sẽ đưa ra exception đã cho nếu một biểu thức boolean đã cho là false
:
throw_unless(Auth::user()->isAdmin(), AuthorizationException::class);
throw_unless(
Auth::user()->isAdmin(),
AuthorizationException::class,
'You are not allowed to access this page'
);
today()
Hàm today
sẽ tạo ra một instance Illuminate\Support\Carbon
mới cho ngày hiện tại:
$today = today();
trait_uses_recursive()
Hàm trait_uses_recursive
trả về tất cả các trait được sử dụng bởi một trait:
$traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class);
transform()
Hàm transform
sẽ thực thi một Closure
trên một giá trị đã cho nếu giá trị không blank và trả về kết quả của một Closure
:
$callback = function ($value) {
return $value * 2;
};
$result = transform(5, $callback);
// 10
Một giá trị mặc định hoặc một Closure
cũng có thể được truyền làm tham số thứ ba cho phương thức. Giá trị này sẽ được trả về nếu giá trị đã cho là blank:
$result = transform(null, $callback, 'The value is blank');
// The value is blank
validator()
Hàm validator
sẽ tạo ra một instance validator mới với các tham số đã cho. Bạn có thể sử dụng nó thay vì facade Validator
cho thuận tiện:
$validator = validator($data, $rules, $messages);
value()
Hàm value
sẽ trả về giá trị được cho. Tuy nhiên, nếu bạn truyền một Closure
cho hàm, thìClosure
sẽ được thực thi sau đó kết quả của nó sẽ được trả về:
$result = value(true);
// true
$result = value(function () {
return false;
});
// false
view()
Hàm view
sẽ lấy ra một instance view:
return view('auth.login');
with()
Hàm with
sẽ trả về giá trị được cho. Nếu một Closure
được truyền làm tham số thứ hai cho hàm, thì Closure
đó sẽ được thực thi và sau đó kết quả của nó sẽ được trả về:
$callback = function ($value) {
return (is_numeric($value)) ? $value * 2 : 0;
};
$result = with(5, $callback);
// 10
$result = with(null, $callback);
// 0
$result = with(5, null);
// 5
entry