Giới thiệu

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.

Các phương thức có sẵn

Arrays & Objects

Paths

Strings

URLs

Miscellaneous

Method Listing

Arrays & Objects

Arr::add()

Hàm Arr::add sẽ thêm một cặp key / giá trị đã cho vào một mảng nếu key đã cho không tồn tại trong mảng:

use Illuminate\Support\Arr;

$array = Arr::add(['name' => 'Desk'], '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

Paths

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

Strings

__()

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.

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

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

// &lt;html&gt;foo&lt;/html&gt;

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::kebab()

Hàm Str::kebab chuyển đổi chuỗi đã cho thànhkebab-case:

use Illuminate\Support\Str;

$converted = Str::kebab('fooBar');

// foo-bar

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::snake()

Hàm Str::snake sẽ chuyển đổi chuỗi đã cho thànhStr::snake:

use Illuminate\Support\Str;

$converted = Str::snake('fooBar');

// foo_bar

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::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::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::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::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::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::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

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.

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

URLs

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

secure_asset()

Hàm secure_asset sẽ tạo URL cho một asset bằng HTTPS:

$url = secure_asset('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_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();

Miscellaneous

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

broadcast()

Hàm broadcast sẽ broadcasts một event cho listener của nó:

broadcast(new UserRegistered($user));

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.

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ố phút 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'], 5);

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

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ệnh dump 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àm env 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àm env 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 là 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 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,
]);

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

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

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
File Storage Mail
© 2023 by Logo page doc-vn