Saltar contenido

La documentación de Laravel esta actualmente traducida en un 53.6%.
Si deseas colaborar, puedes hacerlo a través de nuestro repositorio de Github

Funciones de Ayuda

Introducción

Laravel incluye una variedad de funciones PHP globales de "ayuda". Muchas de estas funciones son usadas por el propio framework; sin embargo, eres libre de usarlas en tus propias aplicaciones si las encuentras convenientes.

Métodos disponibles

Matrices y objetos

Rutas

Strings

Cadenas fluidas

URLs

Varios

Method Listing

Arrays & Objectos

Arr::accessible()

El método Arr::accessible determina si el valor dado es array accesible:

use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
 
$isAccessible = Arr::accessible(['a' => 1, 'b' => 2]);
 
// true
 
$isAccessible = Arr::accessible(new Collection);
 
// true
 
$isAccessible = Arr::accessible('abc');
 
// false
 
$isAccessible = Arr::accessible(new stdClass);
 
// false

Arr::add()

El método Arr::add añade un par clave / valor dado a un array si la clave dada no existe ya en el array o es nula:

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

El método Arr::collapse contrae un array de arrays en un único array:

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

El método Arr::crossJoin cruza lss arrays dadas, devolviendo un producto cartesiano con todas las permutaciones posibles:

use Illuminate\Support\Arr;
 
$matrix = Arr::crossJoin([1, 2], ['a', 'b']);
 
/*
[
[1, 'a'],
[1, 'b'],
[2, 'a'],
[2, 'b'],
]
*/
 
$matrix = Arr::crossJoin([1, 2], ['a', 'b'], ['I', 'II']);
 
/*
[
[1, 'a', 'I'],
[1, 'a', 'II'],
[1, 'b', 'I'],
[1, 'b', 'II'],
[2, 'a', 'I'],
[2, 'a', 'II'],
[2, 'b', 'I'],
[2, 'b', 'II'],
]
*/

Arr::divide()

El método Arr::divide devuelve dos arrays: una con las claves y otra con los valores de el array dado:

use Illuminate\Support\Arr;
 
[$keys, $values] = Arr::divide(['name' => 'Desk']);
 
// $keys: ['name']
 
// $values: ['Desk']

Arr::dot()

El método Arr::dot transforma un array multidimensional en un array de un solo nivel que utiliza la notación "dot" para indicar la profundidad:

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
$flattened = Arr::dot($array);
 
// ['products.desk.price' => 100]

Arr::except()

El método Arr::except elimina de un array los pares clave/valor dados:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Desk', 'price' => 100];
 
$filtered = Arr::except($array, ['price']);
 
// ['name' => 'Desk']

Arr::exists()

El método Arr::exists comprueba que la clave dada existe en el array proporcionado:

use Illuminate\Support\Arr;
 
$array = ['name' => 'John Doe', 'age' => 17];
 
$exists = Arr::exists($array, 'name');
 
// true
 
$exists = Arr::exists($array, 'salary');
 
// false

Arr::first()

El método Arr::first devuelve el primer elemento de un array que supera una condición dada:

use Illuminate\Support\Arr;
 
$array = [100, 200, 300];
 
$first = Arr::first($array, function ($value, $key) {
return $value >= 150;
});
 
// 200

También se puede pasar un valor por defecto como tercer parámetro del método. Este valor se devolverá si ningún valor supera la condición proporcionada:

use Illuminate\Support\Arr;
 
$first = Arr::first($array, $callback, $default);

Arr::flatten()

El método Arr::flatten transforma un array multidimensional en un array de un solo nivel:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
 
$flattened = Arr::flatten($array);
 
// ['Joe', 'PHP', 'Ruby']

Arr::forget()

El método Arr::forget elimina un par clave/valor dado de un array anidado en profundidad utilizando la notación "dot":

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
Arr::forget($array, 'products.desk');
 
// ['products' => []]

Arr::get()

El método Arr::get recupera un valor de un array anidado utilizando la notación "dot":

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
$price = Arr::get($array, 'products.desk.price');
 
// 100

El método Arr::get también acepta un valor por defecto, que será devuelto si la clave especificada no está presente en el array:

use Illuminate\Support\Arr;
 
$discount = Arr::get($array, 'products.desk.discount', 0);
 
// 0

Arr::has()

El método Arr::has comprueba si uno o varios elementos existen en un array utilizando la notación "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::hasAny()

El método Arr::hasAny comprueba si algún elemento de un conjunto dado existe en un array utilizando la notación "dot":

use Illuminate\Support\Arr;
 
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
 
$contains = Arr::hasAny($array, 'product.name');
 
// true
 
$contains = Arr::hasAny($array, ['product.name', 'product.discount']);
 
// true
 
$contains = Arr::hasAny($array, ['category', 'product.discount']);
 
// false

Arr::isAssoc()

El método Arr::isAssoc devuelve true si el array dado es un array asociativo. Un array se considera "asociativo" si no tiene claves numéricas secuenciales que empiecen por cero:

use Illuminate\Support\Arr;
 
$isAssoc = Arr::isAssoc(['product' => ['name' => 'Desk', 'price' => 100]]);
 
// true
 
$isAssoc = Arr::isAssoc([1, 2, 3]);
 
// false

Arr::isList()

El método Arr::isList devuelve true si las claves del array dado son enteros secuenciales empezando por cero:

use Illuminate\Support\Arr;
 
$isList = Arr::isList(['foo', 'bar', 'baz']);
 
// true
 
$isList = Arr::isList(['product' => ['name' => 'Desk', 'price' => 100]]);
 
// false

Arr::join()

El método Arr::join une los elementos de array en una cadena. Utilizando el segundo argumento de este método, también puede especificar la cadena de unión para el elemento final del array:

use Illuminate\Support\Arr;
 
$array = ['Tailwind', 'Alpine', 'Laravel', 'Livewire'];
 
$joined = Arr::join($array, ', ');
 
// Tailwind, Alpine, Laravel, Livewire
 
$joined = Arr::join($array, ', ', ' and ');
 
// Tailwind, Alpine, Laravel and Livewire

Arr::keyBy()

El método Arr::keyBy ordena el array por la clave dada. Si varios elementos tienen la misma clave, sólo el último aparecerá en el nuevo array:

use Illuminate\Support\Arr;
 
$array = [
['product_id' => 'prod-100', 'name' => 'Desk'],
['product_id' => 'prod-200', 'name' => 'Chair'],
];
 
$keyed = Arr::keyBy($array, 'product_id');
 
/*
[
'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'],
'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'],
]
*/

Arr::last()

El método Arr::last devuelve el último elemento de un array que pasa una condición dada:

use Illuminate\Support\Arr;
 
$array = [100, 200, 300, 110];
 
$last = Arr::last($array, function ($value, $key) {
return $value >= 150;
});
 
// 300

Se puede pasar un valor por defecto como tercer argumento del método. Este valor se devolverá si ningún valor supera la condición:

use Illuminate\Support\Arr;
 
$last = Arr::last($array, $callback, $default);

Arr::map()

El método Arr::map recorre el array y pasa cada valor y clave al callback dado. El valor de array se sustituye por el valor devuelto por el callback:

use Illuminate\Support\Arr;
 
$array = ['first' => 'james', 'last' => 'kirk'];
 
$mapped = Arr::map($array, function ($value, $key) {
return ucfirst($value);
});
 
// ['first' => 'James', 'last' => 'Kirk']

Arr::only()

El método Arr::only devuelve sólo los pares clave/valor especificados del array dado:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
 
$slice = Arr::only($array, ['name', 'price']);
 
// ['name' => 'Desk', 'price' => 100]

Arr::pluck()

El método Arr::pluck recupera todos los valores de una clave dada de un array:

use Illuminate\Support\Arr;
 
$array = [
['developer' => ['id' => 1, 'name' => 'Taylor']],
['developer' => ['id' => 2, 'name' => 'Abigail']],
];
 
$names = Arr::pluck($array, 'developer.name');
 
// ['Taylor', 'Abigail']

También puede especificar cómo desea que sea la clave de la lista resultante:

use Illuminate\Support\Arr;
 
$names = Arr::pluck($array, 'developer.name', 'developer.id');
 
// [1 => 'Taylor', 2 => 'Abigail']

Arr::prepend()

El método Arr::prepend coloca un elemento al principio de un array:

use Illuminate\Support\Arr;
 
$array = ['one', 'two', 'three', 'four'];
 
$array = Arr::prepend($array, 'zero');
 
// ['zero', 'one', 'two', 'three', 'four']

Si es necesario, puede especificar la clave que se utilizará para el valor:

use Illuminate\Support\Arr;
 
$array = ['price' => 100];
 
$array = Arr::prepend($array, 'Desk', 'name');
 
// ['name' => 'Desk', 'price' => 100]

Arr::prependKeysWith()

El método Arr::prependKeysWith antepone a todos los nombres de las claves de un array asociativo el prefijo dado:

use Illuminate\Support\Arr;
 
$array = [
'name' => 'Desk',
'price' => 100,
];
 
$keyed = Arr::prependKeysWith($array, 'product.');
 
/*
[
'product.name' => 'Desk',
'product.price' => 100,
]
*/

Arr::pull()

El método Arr::pull devuelve y elimina un par clave/valor de un array:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Desk', 'price' => 100];
 
$name = Arr::pull($array, 'name');
 
// $name: Desk
 
// $array: ['price' => 100]

Se puede pasar un valor por defecto como tercer argumento del método. Este valor se devolverá si la clave no existe:

use Illuminate\Support\Arr;
 
$value = Arr::pull($array, $key, $default);

Arr::query()

El método Arr::query convierte el array en una query string:

use Illuminate\Support\Arr;
 
$array = [
'name' => 'Taylor',
'order' => [
'column' => 'created_at',
'direction' => 'desc'
]
];
 
Arr::query($array);
 
// name=Taylor&order[column]=created_at&order[direction]=desc

Arr::random()

El método Arr::random devuelve un valor aleatorio de un array:

use Illuminate\Support\Arr;
 
$array = [1, 2, 3, 4, 5];
 
$random = Arr::random($array);
 
// 4 - (retrieved randomly)

También puede especificar el número de elementos a devolver como segundo argumento opcional. Tenga en cuenta que este argumento devolverá un array incluso si sólo desea un elemento:

use Illuminate\Support\Arr;
 
$items = Arr::random($array, 2);
 
// [2, 5] - (retrieved randomly)

Arr::set()

El método Arr::set establece un valor dentro de un array anidado usando la notación "dot":

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
Arr::set($array, 'products.desk.price', 200);
 
// ['products' => ['desk' => ['price' => 200]]]

Arr::shuffle()

El método Arr::shuffle mezcla aleatoriamente los elementos del array:

use Illuminate\Support\Arr;
 
$array = Arr::shuffle([1, 2, 3, 4, 5]);
 
// [3, 2, 5, 1, 4] - (generated randomly)

Arr::sort()

El método Arr::sort ordena un array por sus valores:

use Illuminate\Support\Arr;
 
$array = ['Desk', 'Table', 'Chair'];
 
$sorted = Arr::sort($array);
 
// ['Chair', 'Desk', 'Table']

También puede ordenar el array por los resultados de un closure dado:

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

El método Arr::sortRecursive ordena recursivamente un array utilizando la función sort para sub-arrays indexados numéricamente y la función ksort para sub-arrays asociativas:

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

El método Arr::toCssClasses compila condicionalmente una cadena de clases CSS. El método acepta un array de clases donde la clave del array contiene la clase o clases que desea añadir, mientras que el valor es una expresión booleana. Si el elemento array tiene una clave numérica, siempre se incluirá en la lista de clases renderizada:

use Illuminate\Support\Arr;
 
$isActive = false;
$hasError = true;
 
$array = ['p-4', 'font-bold' => $isActive, 'bg-red' => $hasError];
 
$classes = Arr::toCssClasses($array);
 
/*
'p-4 bg-red'
*/

Este método potencia la funcionalidad de Laravel que permite fusionar clases con la bolsa de atributos de un componente Blade, así como la directiva de Blade @class.

Arr::undot()

El método Arr::undot expande un array unidimensional que utiliza la notación "dot" a un array multidimensional:

use Illuminate\Support\Arr;
 
$array = [
'user.name' => 'Kevin Malone',
'user.occupation' => 'Accountant',
];
 
$array = Arr::undot($array);
 
// ['user' => ['name' => 'Kevin Malone', 'occupation' => 'Accountant']]

Arr::where()

El método Arr::where filtra un array utilizando el closure dado:

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

El método Arr::whereNotNull elimina todos los valores nulos del array dado:

use Illuminate\Support\Arr;
 
$array = [0, null];
 
$filtered = Arr::whereNotNull($array);
 
// [0 => 0]

Arr::wrap()

El método Arr::wrap envuelve el valor dado en un array. Si el valor dado ya es un array, se devolverá sin modificaciones:

use Illuminate\Support\Arr;
 
$string = 'Laravel';
 
$array = Arr::wrap($string);
 
// ['Laravel']

Si el valor dado es nulo, se devolverá un array vacío:

use Illuminate\Support\Arr;
 
$array = Arr::wrap(null);
 
// []

data_fill()

La función data_fill establece un valor que falta dentro de un array u objeto anidado utilizando la notación "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]]]

Esta función también acepta asteriscos como comodines y rellenará el objetivo en consecuencia:

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

La función data_get recupera un valor de un array u objeto anidado utilizando la notación "dot":

$data = ['products' => ['desk' => ['price' => 100]]];
 
$price = data_get($data, 'products.desk.price');
 
// 100

La función data_get también acepta un valor por defecto, que se devolverá si no se encuentra la clave especificada:

$discount = data_get($data, 'products.desk.discount', 0);
 
// 0

La función también acepta comodines utilizando asteriscos, que pueden apuntar a cualquier clave del array u objeto:

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

La función data_set establece un valor dentro de un array u objeto anidado utilizando la notación "dot":

$data = ['products' => ['desk' => ['price' => 100]]];
 
data_set($data, 'products.desk.price', 200);
 
// ['products' => ['desk' => ['price' => 200]]]

Esta función también acepta comodines utilizando asteriscos y establecerá los valores en el objetivo en consecuencia:

$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],
],
]
*/

Por defecto, los valores existentes se sobrescriben. Si sólo desea establecer un valor si no existe, puede pasar false como cuarto argumento a la función:

$data = ['products' => ['desk' => ['price' => 100]]];
 
data_set($data, 'products.desk.price', 200, overwrite: false);
 
// ['products' => ['desk' => ['price' => 100]]]

head()

La función head devuelve el primer elemento de el array dado:

$array = [100, 200, 300];
 
$first = head($array);
 
// 100

last()

La función last devuelve el último elemento de el array dado:

$array = [100, 200, 300];
 
$last = last($array);
 
// 300

Rutas

app_path()

La función app_path devuelve la ruta completa al directorio de aplicaciones de su aplicación. También puede utilizar la función app_path para generar una ruta completa a un archivo relativo al directorio de la aplicación:

$path = app_path();
 
$path = app_path('Http/Controllers/Controller.php');

base_path()

La función base_path devuelve la ruta completa al directorio raíz de la aplicación. También puede utilizar la función base_path para generar una ruta completa a un archivo dado relativo al directorio raíz del proyecto:

$path = base_path();
 
$path = base_path('vendor/bin');

config_path()

La función config_path devuelve la ruta completa al directorio de configuración de su aplicación. También puede utilizar la función config_path para generar una ruta completa a un archivo determinado dentro del directorio de configuración de la aplicación:

$path = config_path();
 
$path = config_path('app.php');

database_path()

La función database_path devuelve la ruta completa al directorio database de la aplicación. También puede utilizar la función database_path para generar una ruta completa a un archivo determinado dentro del directorio de la base de datos:

$path = database_path();
 
$path = database_path('factories/UserFactory.php');

lang_path()

La función lang_path devuelve la ruta completa al directorio lang de su aplicación. También puede utilizar la función lang_path para generar una ruta completa a un archivo determinado dentro del directorio:

$path = lang_path();
 
$path = lang_path('en/messages.php');

mix()

La función mix devuelve la ruta a un archivo Mix versionado:

$path = mix('css/app.css');

public_path()

La función public_path devuelve la ruta completa al directorio public de su aplicación. También puede utilizar la función public_path para generar una ruta completa a un archivo determinado dentro del directorio público:

$path = public_path();
 
$path = public_path('css/app.css');

resource_path()

La función resource_path devuelve la ruta completa al directorio resources de su aplicación. También puede utilizar la función resource_path para generar una ruta completa a un archivo determinado dentro del directorio de recursos:

$path = resource_path();
 
$path = resource_path('sass/app.scss');

storage_path()

La función storage_path devuelve la ruta completa al directorio storage su aplicación. También puede utilizar la función storage_path para generar una ruta completa a un archivo determinado dentro del directorio de almacenamiento:

$path = storage_path();
 
$path = storage_path('app/file.txt');

Strings

__()

La función __ traduce la cadena o clave de traducción dada utilizando sus archivos de localización:

echo __('Welcome to our application');
 
echo __('messages.welcome');

Si la cadena o clave de traducción especificada no existe, la función __ devolverá el valor dado. Así, utilizando el ejemplo anterior, la función __ devolveríamessages.welcome si esa clave de traducción no existe.

class_basename()

La función class_basename devuelve el nombre de la clase dada sin el espacio de nombres de la clase:

$class = class_basename('Foo\Bar\Baz');
 
// Baz

e()

La función e ejecuta la función htmlspecialchars de PHP con la opción double_encode activada defecto:

echo e('<html>foo</html>');
 
// &lt;html&gt;foo&lt;/html&gt;

preg_replace_array()

La función preg_replace_array reemplaza un patrón dado en la cadena secuencialmente usando un array:

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

El método Str::after devuelve todo lo que hay después del valor dado en una cadena. Se devolverá la cadena completa si el valor no existe dentro de la cadena:

use Illuminate\Support\Str;
 
$slice = Str::after('This is my name', 'This is');
 
// ' my name'

Str::afterLast()

El método Str::afterLast devuelve todo lo que hay después de la última aparición del valor dado en una cadena. Se devolverá la cadena completa si el valor no existe dentro de la cadena:

use Illuminate\Support\Str;
 
$slice = Str::afterLast('App\Http\Controllers\Controller', '\\');
 
// 'Controller'

Str::ascii()

El método Str::ascii intentará transliterar la cadena a un valor ASCII:

use Illuminate\Support\Str;
 
$slice = Str::ascii('û');
 
// 'u'

Str::before()

El método Str::before devuelve todo lo anterior al valor dado en una cadena:

use Illuminate\Support\Str;
 
$slice = Str::before('This is my name', 'my name');
 
// 'This is '

Str::beforeLast()

El método Str::beforeLast devuelve todo lo que hay antes de la última aparición del valor dado en una cadena:

use Illuminate\Support\Str;
 
$slice = Str::beforeLast('This is my name', 'is');
 
// 'This '

Str::between()

El método Str::between devuelve la parte de una cadena comprendida entre dos valores:

use Illuminate\Support\Str;
 
$slice = Str::between('This is my name', 'This', 'name');
 
// ' is my '

Str::betweenFirst()

El método Str::betweenFirst devuelve la porción más pequeña posible de una cadena entre dos valores:

use Illuminate\Support\Str;
 
$slice = Str::betweenFirst('[a] bc [d]', '[', ']');
 
// 'a'

Str::camel()

El método Str::camel convierte la cadena dada a camelCase:

use Illuminate\Support\Str;
 
$converted = Str::camel('foo_bar');
 
// fooBar

Str::contains()

El método Str::contains determina si la cadena dada contiene el valor dado. Este método distingue entre mayúsculas y minúsculas:

use Illuminate\Support\Str;
 
$contains = Str::contains('This is my name', 'my');
 
// true

También puede pasar un array de valores para determinar si la cadena dada contiene alguno de los valores de el array:

use Illuminate\Support\Str;
 
$contains = Str::contains('This is my name', ['my', 'foo']);
 
// true

Str::containsAll()

El método Str::containsAll determina si la cadena dada contiene todos los valores de un array dado:

use Illuminate\Support\Str;
 
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
 
// true

Str::endsWith()

El método Str::endsWith determina si la cadena dada termina con el valor dado:

use Illuminate\Support\Str;
 
$result = Str::endsWith('This is my name', 'name');
 
// true

También puede pasar un array de valores para determinar si la cadena dada termina con cualquiera de los valores del array:

use Illuminate\Support\Str;
 
$result = Str::endsWith('This is my name', ['name', 'foo']);
 
// true
 
$result = Str::endsWith('This is my name', ['this', 'foo']);
 
// false

Str::excerpt()

El método Str::excerpt extrae un fragmento de una cadena dada que coincide con la primera instancia de una frase dentro de esa cadena:

use Illuminate\Support\Str;
 
$excerpt = Str::excerpt('This is my name', 'my', [
'radius' => 3
]);
 
// '...is my na...'

La opción radius, que por defecto es 100, permite definir el número de caracteres que deben aparecer a cada lado de la cadena truncada.

Además, puede utilizar la opción omission para definir la cadena que se antepondrá y añadirá a la cadena truncada:

use Illuminate\Support\Str;
 
$excerpt = Str::excerpt('This is my name', 'name', [
'radius' => 3,
'omission' => '(...) '
]);
 
// '(...) my name'

Str::finish()

El método Str::finish añade una única instancia del valor dado a una cadena si aún no termina con ese valor:

use Illuminate\Support\Str;
 
$adjusted = Str::finish('this/string', '/');
 
// this/string/
 
$adjusted = Str::finish('this/string/', '/');
 
// this/string/

Str::headline()

El método Str::headline convierte cadenas delimitadas por mayúsculas, guiones o guiones bajos en una cadena delimitada por espacios con la primera letra de cada palabra en mayúscula:

use Illuminate\Support\Str;
 
$headline = Str::headline('steve_jobs');
 
// Steve Jobs
 
$headline = Str::headline('EmailNotificationSent');
 
// Email Notification Sent

Str::inlineMarkdown()

El método Str::inlineMarkdown convierte Markdown (en su variante para GitHub) en HTML inline utilizando CommonMark. Sin embargo, a diferencia del método markdown, no envuelve todo el HTML generado en un elemento a nivel de bloque:

use Illuminate\Support\Str;
 
$html = Str::inlineMarkdown('**Laravel**');
 
// <strong>Laravel</strong>

Str::is()

El método Str::is determina si una cadena dada coincide con un patrón dado. Los asteriscos pueden utilizarse como comodines:

use Illuminate\Support\Str;
 
$matches = Str::is('foo*', 'foobar');
 
// true
 
$matches = Str::is('baz*', 'foobar');
 
// false

Str::isAscii()

El método Str::isAscii determina si una cadena dada es ASCII de 7 bits:

use Illuminate\Support\Str;
 
$isAscii = Str::isAscii('Taylor');
 
// true
 
$isAscii = Str::isAscii('ü');
 
// false

Str::isJson()

El método Str::isJson determina si la cadena dada es JSON válida:

use Illuminate\Support\Str;
 
$result = Str::isJson('[1,2,3]');
 
// true
 
$result = Str::isJson('{"first": "John", "last": "Doe"}');
 
// true
 
$result = Str::isJson('{first: "John", last: "Doe"}');
 
// false

Str::isUlid()

El método Str::isUlid determina si la cadena dada es un ULID válido:

use Illuminate\Support\Str;
 
$isUlid = Str::isUlid('01gd6r360bp37zj17nxb55yv40');
 
// true
 
$isUlid = Str::isUlid('laravel');
 
// false

Str::isUuid()

El método Str::isUuid determina si la cadena dada es un UUID válido:

use Illuminate\Support\Str;
 
$isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');
 
// true
 
$isUuid = Str::isUuid('laravel');
 
// false

Str::kebab()

El método Str::kebab convierte la cadena dada a kebab-case:

use Illuminate\Support\Str;
 
$converted = Str::kebab('fooBar');
 
// foo-bar

Str::lcfirst()

El método Str::lcfirst devuelve la cadena dada con el primer carácter en minúsculas:

use Illuminate\Support\Str;
 
$string = Str::lcfirst('Foo Bar');
 
// foo Bar

Str::length()

El método Str::length devuelve la longitud de la cadena dada:

use Illuminate\Support\Str;
 
$length = Str::length('Laravel');
 
// 7

Str::limit()

El método Str::limit trunca la cadena dada hasta la longitud especificada:

use Illuminate\Support\Str;
 
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);
 
// The quick brown fox...

Puede pasar un tercer argumento al método para cambiar la cadena que se añadirá al final de la cadena truncada:

use Illuminate\Support\Str;
 
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
 
// The quick brown fox (...)

Str::lower()

El método Str::lower convierte la cadena dada a minúsculas:

use Illuminate\Support\Str;
 
$converted = Str::lower('LARAVEL');
 
// laravel

Str::markdown()

El método Str::markdown convierte GitHub flavored Markdown en HTML utilizando CommonMark:

use Illuminate\Support\Str;
 
$html = Str::markdown('# Laravel');
 
// <h1>Laravel</h1>
 
$html = Str::markdown('# Taylor <b>Otwell</b>', [
'html_input' => 'strip',
]);
 
// <h1>Taylor Otwell</h1>

Str::mask()

El método Str::mask enmascara una parte de una cadena con un carácter repetido, y puede utilizarse para ofuscar segmentos de cadenas como direcciones de correo electrónico y números de teléfono:

use Illuminate\Support\Str;
 
$string = Str::mask('taylor@example.com', '*', 3);
 
// tay***************

Si es necesario, proporcione un número negativo como tercer argumento del método mask, que indicará al método que comience a enmascarar a la distancia dada del final de la cadena:

$string = Str::mask('taylor@example.com', '*', -15, 3);
 
// tay***@example.com

Str::orderedUuid()

El método Str::orderedUuid genera un UUID "timestamp first" que puede almacenarse de forma eficiente en una columna indexada de la base de datos. Cada UUID que se genere utilizando este método se ordenará después de los UUID generados previamente utilizando el método:

use Illuminate\Support\Str;
 
return (string) Str::orderedUuid();

Str::padBoth()

El método Str::padBoth envuelve la función str_pad de PHP, rellenando ambos lados de una cadena con otra cadena hasta que la cadena final alcanza la longitud deseada:

use Illuminate\Support\Str;
 
$padded = Str::padBoth('James', 10, '_');
 
// '__James___'
 
$padded = Str::padBoth('James', 10);
 
// ' James '

Str::padLeft()

El método Str::padLeft envuelve la función str_pad de PHP, rellenando el lado izquierdo de una cadena con otra cadena hasta que la cadena final alcanza la longitud deseada:

use Illuminate\Support\Str;
 
$padded = Str::padLeft('James', 10, '-=');
 
// '-=-=-James'
 
$padded = Str::padLeft('James', 10);
 
// ' James'

Str::padRight()

El método Str::padRight envuelve la función str_pad de PHP, rellenando el lado derecho de una cadena con otra cadena hasta que la cadena final alcanza la longitud deseada:

use Illuminate\Support\Str;
 
$padded = Str::padRight('James', 10, '-');
 
// 'James-----'
 
$padded = Str::padRight('James', 10);
 
// 'James '

Str::plural()

El método Str::plural convierte una cadena de palabras en singular a su forma plural. Esta función soporta cualquiera de los lenguajes soportados por el pluralizador de Laravel:

use Illuminate\Support\Str;
 
$plural = Str::plural('car');
 
// cars
 
$plural = Str::plural('child');
 
// children

Puede proporcionar un número entero como segundo argumento de la función para recuperar la forma singular o plural de la cadena:

use Illuminate\Support\Str;
 
$plural = Str::plural('child', 2);
 
// children
 
$singular = Str::plural('child', 1);
 
// child

Str::pluralStudly()

El método Str::pluralStudly convierte una palabra singular formateada en mayúsculas a su forma plural. Esta función soporta cualquiera de los lenguajes soportados por el pluralizador de Laravel:

use Illuminate\Support\Str;
 
$plural = Str::pluralStudly('VerifiedHuman');
 
// VerifiedHumans
 
$plural = Str::pluralStudly('UserFeedback');
 
// UserFeedback

Puede proporcionar un número entero como segundo argumento de la función para recuperar la forma singular o plural de la cadena:

use Illuminate\Support\Str;
 
$plural = Str::pluralStudly('VerifiedHuman', 2);
 
// VerifiedHumans
 
$singular = Str::pluralStudly('VerifiedHuman', 1);
 
// VerifiedHuman

Str::random()

El método Str::random genera una cadena aleatoria de la longitud especificada. Esta función usa la función random_bytes de PHP:

use Illuminate\Support\Str;
 
$random = Str::random(40);

Str::remove()

El método Str::remove elimina el valor o array de valores dados de la cadena:

use Illuminate\Support\Str;
 
$string = 'Peter Piper picked a peck of pickled peppers.';
 
$removed = Str::remove('e', $string);
 
// Ptr Pipr pickd a pck of pickld ppprs.

También puede pasar false como tercer argumento al método remove para ignorar mayúsculas y minúsculas al eliminar cadenas.

Str::replace()

El método Str::replace sustituye una cadena dada dentro de la cadena:

use Illuminate\Support\Str;
 
$string = 'Laravel 8.x';
 
$replaced = Str::replace('8.x', '9.x', $string);
 
// Laravel 9.x

Str::replaceArray()

El método Str::replaceArray reemplaza un valor dado en la cadena secuencialmente usando un array:

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

El método Str::replaceFirst reemplaza la primera aparición de un valor dado en una cadena:

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

El método Str::replaceLast reemplaza la última aparición de un valor dado en una cadena:

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

El método Str::reverse invierte la cadena dada:

use Illuminate\Support\Str;
 
$reversed = Str::reverse('Hello World');
 
// dlroW olleH

Str::singular()

El método Str::singular convierte una cadena a su forma singular. Esta función soporta cualquiera de los lenguajes soportados por el pluralizador de Laravel:

use Illuminate\Support\Str;
 
$singular = Str::singular('cars');
 
// car
 
$singular = Str::singular('children');
 
// child

Str::slug()

El método Str::slug genera una URL amigable "slug" a partir de la cadena dada:

use Illuminate\Support\Str;
 
$slug = Str::slug('Laravel 5 Framework', '-');
 
// laravel-5-framework

Str::snake()

El método Str::snake convierte la cadena dada a snake_case:

use Illuminate\Support\Str;
 
$converted = Str::snake('fooBar');
 
// foo_bar
 
$converted = Str::snake('fooBar', '-');
 
// foo-bar

Str::squish()

El método Str::squish elimina todos los espacios en blanco extraños de una cadena, incluidos los espacios en blanco extraños entre palabras:

use Illuminate\Support\Str;
 
$string = Str::squish(' laravel framework ');
 
// laravel framework

Str::start()

El método Str::start añade una única instancia del valor dado a una cadena si no empieza ya con ese valor:

use Illuminate\Support\Str;
 
$adjusted = Str::start('this/string', '/');
 
// /this/string
 
$adjusted = Str::start('/this/string', '/');
 
// /this/string

Str::startsWith()

El método Str::startsWith determina si la cadena dada comienza con el valor dado:

use Illuminate\Support\Str;
 
$result = Str::startsWith('This is my name', 'This');
 
// true

Si se pasa un array de posibles valores, el método startsWith devolverá true si la cadena empieza por alguno de los valores dados:

$result = Str::startsWith('This is my name', ['This', 'That', 'There']);
 
// true

Str::studly()

El método Str::studly convierte la cadena dada a StudlyCase:

use Illuminate\Support\Str;
 
$converted = Str::studly('foo_bar');
 
// FooBar

Str::substr()

El método Str::substr devuelve la parte de la cadena especificada por los parámetros start y length:

use Illuminate\Support\Str;
 
$converted = Str::substr('The Laravel Framework', 4, 7);
 
// Laravel

Str::substrCount()

El método Str::substrCount devuelve el número de apariciones de un valor dado en la cadena dada:

use Illuminate\Support\Str;
 
$count = Str::substrCount('If you like ice cream, you will like snow cones.', 'like');
 
// 2

Str::substrReplace()

El método Str::substrReplace sustituye texto dentro de una parte de una cadena, empezando en la posición especificada por el tercer argumento y sustituyendo el número de caracteres especificado por el cuarto argumento. Pasando 0 al cuarto argumento del método se insertará la cadena en la posición especificada sin reemplazar ninguno de los caracteres existentes en la cadena:

use Illuminate\Support\Str;
 
$result = Str::substrReplace('1300', ':', 2);
// 13:
 
$result = Str::substrReplace('1300', ':', 2, 0);
// 13:00

Str::swap()

El método Str::swap reemplaza múltiples valores en la cadena dada usando la función strtr de PHP:

use Illuminate\Support\Str;
 
$string = Str::swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
], 'Tacos are great!');
 
// Burritos are fantastic!

Str::title()

El método Str::title convierte la cadena dada a Title Case:

use Illuminate\Support\Str;
 
$converted = Str::title('a nice title uses the correct case');
 
// A Nice Title Uses The Correct Case

Str::toHtmlString()

El método Str::toHtmlString convierte la instancia de cadena en una instancia de Illuminate\Support\HtmlString, que puede mostrarse en plantillas Blade:

use Illuminate\Support\Str;
 
$htmlString = Str::of('Nuno Maduro')->toHtmlString();

Str::ucfirst()

El método Str::ucfirst devuelve la cadena dada con el primer carácter en mayúsculas:

use Illuminate\Support\Str;
 
$string = Str::ucfirst('foo bar');
 
// Foo bar

Str::ucsplit()

El método Str::ucsplit divide la cadena dada en un array por caracteres en mayúsculas:

use Illuminate\Support\Str;
 
$segments = Str::ucsplit('FooBar');
 
// [0 => 'Foo', 1 => 'Bar']

Str::upper()

El método Str::upper convierte la cadena dada a mayúsculas:

use Illuminate\Support\Str;
 
$string = Str::upper('laravel');
 
// LARAVEL

Str::ulid()

El método Str::ulid genera un ULID:

use Illuminate\Support\Str;
 
return (string) Str::ulid();
 
// 01gd6r360bp37zj17nxb55yv40

Str::uuid()

El método Str::uuid genera un UUID (versión 4):

use Illuminate\Support\Str;
 
return (string) Str::uuid();

Str::wordCount()

El método Str::wordCount devuelve el número de palabras que contiene una cadena:

use Illuminate\Support\Str;
 
Str::wordCount('Hello, world!'); // 2

Str::words()

El método Str::words limita el número de palabras de una cadena. Puede pasarse una cadena adicional a este método a través de su tercer argumento para especificar qué cadena debe añadirse al final de la cadena truncada:

use Illuminate\Support\Str;
 
return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
 
// Perfectly balanced, as >>>

str()

La función str devuelve una nueva instancia Illuminate\Support\Stringable de la cadena dada. Esta función es equivalente al método Str::of:

$string = str('Taylor')->append(' Otwell');
 
// 'Taylor Otwell'

Si no se proporciona ningún argumento a la función str, la función devuelve una instancia de Illuminate\Support\Str:

$snake = str()->snake('FooBar');
 
// 'foo_bar'

trans()

La función trans traduce la clave de traducción dada utilizando sus archivos de localización:

echo trans('messages.welcome');

Si la clave de traducción especificada no existe, la función trans devolverá la clave dada. Así, utilizando el ejemplo anterior, la función trans devolvería messages.welcome si la clave de traducción no existe.

trans_choice()

La función trans_choice traduce la clave de traducción dada con inflexión:

echo trans_choice('messages.notifications', $unreadCount);

Si la clave de traducción especificada no existe, la función trans_choice devolverá la clave dada. Así, utilizando el ejemplo anterior, la función trans_choice devolvería messages.notifications si la clave de traducción no existe.

Fluent Strings

Las cadenas fluidas proporcionan una interfaz más fluida y orientada a objetos para trabajar con valores de cadena, lo que permite encadenar múltiples operaciones de cadena utilizando una sintaxis más legible en comparación con las operaciones de cadena tradicionales.

after

El método after devuelve todo lo que hay después del valor dado en una cadena. Se devolverá la cadena completa si el valor no existe dentro de la cadena:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->after('This is');
 
// ' my name'

afterLast

El método afterLast devuelve todo lo que hay después de la última aparición del valor dado en una cadena. Se devolverá la cadena entera si el valor no existe dentro de la cadena:

use Illuminate\Support\Str;
 
$slice = Str::of('App\Http\Controllers\Controller')->afterLast('\\');
 
// 'Controller'

append

El método append añade los valores dados a la cadena:

use Illuminate\Support\Str;
 
$string = Str::of('Taylor')->append(' Otwell');
 
// 'Taylor Otwell'

ascii

El método ascii intentará transcribir la cadena a un valor ASCII:

use Illuminate\Support\Str;
 
$string = Str::of('ü')->ascii();
 
// 'u'

basename

El método basename devolverá el componente final del nombre de la cadena dada:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->basename();
 
// 'baz'

Si es necesario, puede proporcionar una "extensión" que se eliminará del componente final:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz.jpg')->basename('.jpg');
 
// 'baz'

before

El método before devuelve todo lo que hay antes del valor dado en una cadena:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->before('my name');
 
// 'This is '

beforeLast

El método beforeLast devuelve todo lo que hay antes de la última aparición del valor dado en una cadena:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->beforeLast('is');
 
// 'This '

between

El método between devuelve la parte de una cadena comprendida entre dos valores:

use Illuminate\Support\Str;
 
$converted = Str::of('This is my name')->between('This', 'name');
 
// ' is my '

betweenFirst

El método betweenFirst devuelve la porción más pequeña posible de una cadena entre dos valores:

use Illuminate\Support\Str;
 
$converted = Str::of('[a] bc [d]')->betweenFirst('[', ']');
 
// 'a'

camel

El método camel convierte la cadena dada a camelCase:

use Illuminate\Support\Str;
 
$converted = Str::of('foo_bar')->camel();
 
// fooBar

classBasename

El método classBasename devuelve el nombre de la clase dada sin su espacio de nombres:

use Illuminate\Support\Str;
 
$class = Str::of('Foo\Bar\Baz')->classBasename();
 
// Baz

contains

El método contains determina si la cadena dada contiene el valor dado. Este método distingue entre mayúsculas y minúsculas:

use Illuminate\Support\Str;
 
$contains = Str::of('This is my name')->contains('my');
 
// true

También puede pasar un array de valores para determinar si la cadena dada contiene alguno de los valores de el array:

use Illuminate\Support\Str;
 
$contains = Str::of('This is my name')->contains(['my', 'foo']);
 
// true

containsAll

El método containsAll determina si la cadena dada contiene todos los valores de el array dado:

use Illuminate\Support\Str;
 
$containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
 
// true

dirname

El método dirname devuelve la parte del directorio padre de la cadena dada:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->dirname();
 
// '/foo/bar'

Si es necesario, puede especificar cuántos niveles de directorio desea recortar de la cadena:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->dirname(2);
 
// '/foo'

excerpt

El método excerpt extrae un fragmento de la cadena que coincide con la primera instancia de una frase dentro de esa cadena:

use Illuminate\Support\Str;
 
$excerpt = Str::of('This is my name')->excerpt('my', [
'radius' => 3
]);
 
// '...is my na...'

La opción radio, que por defecto es 100, le permite definir el número de caracteres que deben aparecer a cada lado de la cadena truncada.

Además, puede utilizar la opción de omisión para cambiar la cadena que se antepondrá y añadirá a la cadena truncada:

use Illuminate\Support\Str;
 
$excerpt = Str::of('This is my name')->excerpt('name', [
'radius' => 3,
'omission' => '(...) '
]);
 
// '(...) my name'

endsWith

El método endsWith determina si la cadena dada termina con el valor dado:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->endsWith('name');
 
// true

También puede pasar un array de valores para determinar si la cadena dada termina con cualquiera de los valores de el array:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->endsWith(['name', 'foo']);
 
// true
 
$result = Str::of('This is my name')->endsWith(['this', 'foo']);
 
// false

exactly

El método exactly determina si la cadena dada coincide exactamente con otra cadena:

use Illuminate\Support\Str;
 
$result = Str::of('Laravel')->exactly('Laravel');
 
// true

explode

El método explode divide la cadena por el delimitador dado y devuelve una colección que contiene cada sección de la cadena dividida:

use Illuminate\Support\Str;
 
$collection = Str::of('foo bar baz')->explode(' ');
 
// collect(['foo', 'bar', 'baz'])

finish

El método finish añade una única instancia del valor dado a una cadena si no termina ya con ese valor:

use Illuminate\Support\Str;
 
$adjusted = Str::of('this/string')->finish('/');
 
// this/string/
 
$adjusted = Str::of('this/string/')->finish('/');
 
// this/string/

headline

El método headline convierte cadenas delimitadas por mayúsculas, guiones o guiones bajos en una cadena delimitada por espacios con la primera letra de cada palabra en mayúscula:

use Illuminate\Support\Str;
 
$headline = Str::of('taylor_otwell')->headline();
 
// Taylor Otwell
 
$headline = Str::of('EmailNotificationSent')->headline();
 
// Email Notification Sent

inlineMarkdown

El método inlineMarkdown convierte Markdown (tipo GitHub) en HTML en línea utilizando CommonMark. Sin embargo, a diferencia del método markdown, no envuelve todo el HTML generado en un elemento a nivel de bloque:

use Illuminate\Support\Str;
 
$html = Str::of('**Laravel**')->inlineMarkdown();
 
// <strong>Laravel</strong>

is

El método is determina si una cadena dada coincide con un patrón dado. Los asteriscos pueden utilizarse como comodines

use Illuminate\Support\Str;
 
$matches = Str::of('foobar')->is('foo*');
 
// true
 
$matches = Str::of('foobar')->is('baz*');
 
// false

isAscii

El método isAscii determina si una cadena dada es una cadena ASCII:

use Illuminate\Support\Str;
 
$result = Str::of('Taylor')->isAscii();
 
// true
 
$result = Str::of('ü')->isAscii();
 
// false

isEmpty

El método isEmpty determina si la cadena dada está vacía:

use Illuminate\Support\Str;
 
$result = Str::of(' ')->trim()->isEmpty();
 
// true
 
$result = Str::of('Laravel')->trim()->isEmpty();
 
// false

isNotEmpty

El método isNotEmpty determina si la cadena dada no está vacía:

use Illuminate\Support\Str;
 
$result = Str::of(' ')->trim()->isNotEmpty();
 
// false
 
$result = Str::of('Laravel')->trim()->isNotEmpty();
 
// true

isJson

El método isJson determina si una cadena dada es un JSON válido:

use Illuminate\Support\Str;
 
$result = Str::of('[1,2,3]')->isJson();
 
// true
 
$result = Str::of('{"first": "John", "last": "Doe"}')->isJson();
 
// true
 
$result = Str::of('{first: "John", last: "Doe"}')->isJson();
 
// false

isUlid

El método isUlid determina si una cadena dada es un ULID:

use Illuminate\Support\Str;
 
$result = Str::of('01gd6r360bp37zj17nxb55yv40')->isUlid();
 
// true
 
$result = Str::of('Taylor')->isUlid();
 
// false

isUuid

El método isUuid determina si una cadena dada es un UUID:

use Illuminate\Support\Str;
 
$result = Str::of('5ace9ab9-e9cf-4ec6-a19d-5881212a452c')->isUuid();
 
// true
 
$result = Str::of('Taylor')->isUuid();
 
// false

kebab

El método kebab convierte la cadena dada a kebab-case:

use Illuminate\Support\Str;
 
$converted = Str::of('fooBar')->kebab();
 
// foo-bar

lcfirst

El método lcfirst devuelve la cadena dada con el primer carácter en minúsculas:

use Illuminate\Support\Str;
 
$string = Str::of('Foo Bar')->lcfirst();
 
// foo Bar

length

El método length devuelve la longitud de la cadena dada:

use Illuminate\Support\Str;
 
$length = Str::of('Laravel')->length();
 
// 7

limit

El método limit trunca la cadena dada hasta la longitud especificada:

use Illuminate\Support\Str;
 
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20);
 
// The quick brown fox...

También puede pasar un segundo argumento para cambiar la cadena que se añadirá al final de la cadena truncada:

use Illuminate\Support\Str;
 
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
 
// The quick brown fox (...)

lower

El método lower convierte la cadena dada a minúsculas:

use Illuminate\Support\Str;
 
$result = Str::of('LARAVEL')->lower();
 
// 'laravel'

ltrim

El método ltrim recorta el lado izquierdo de la cadena:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->ltrim();
 
// 'Laravel '
 
$string = Str::of('/Laravel/')->ltrim('/');
 
// 'Laravel/'

markdown

El método markdown convierte Markdown (en su variante GitHub) en HTML:

use Illuminate\Support\Str;
 
$html = Str::of('# Laravel')->markdown();
 
// <h1>Laravel</h1>
 
$html = Str::of('# Taylor <b>Otwell</b>')->markdown([
'html_input' => 'strip',
]);
 
// <h1>Taylor Otwell</h1>

mask

El método mask enmascara una parte de una cadena con un carácter repetido, y puede utilizarse para ofuscar segmentos de cadenas como direcciones de correo electrónico y números de teléfono:

use Illuminate\Support\Str;
 
$string = Str::of('taylor@example.com')->mask('*', 3);
 
// tay***************

Si es necesario, proporcione un número negativo como tercer argumento al método mask, que le indicará que comience a enmascarar a la distancia dada del final de la cadena:

$string = Str::of('taylor@example.com')->mask('*', -15, 3);
 
// tay***@example.com

match

El método match devuelve la parte de una cadena que coincide con un patrón de expresión regular dado:

use Illuminate\Support\Str;
 
$result = Str::of('foo bar')->match('/bar/');
 
// 'bar'
 
$result = Str::of('foo bar')->match('/foo (.*)/');
 
// 'bar'

matchAll

El método matchAll devuelve una colección que contiene las partes de una cadena que coinciden con un patrón de expresión regular dado:

use Illuminate\Support\Str;
 
$result = Str::of('bar foo bar')->matchAll('/bar/');
 
// collect(['bar', 'bar'])

Si especifica un grupo coincidente dentro de la expresión, Laravel devolverá una colección con las coincidencias de ese grupo:

use Illuminate\Support\Str;
 
$result = Str::of('bar fun bar fly')->matchAll('/f(\w*)/');
 
// collect(['un', 'ly']);

Si no se encuentra ninguna coincidencia, se devolverá una colección vacía.

newLine

El método newLine añade un carácter de "fin de línea" a una cadena:

use Illuminate\Support\Str;
 
$padded = Str::of('Laravel')->newLine()->append('Framework');
 
// 'Laravel
// Framework'

padBoth

El método padBoth envuelve la función str_pad de PHP, rellenando ambos lados de una cadena con otra cadena hasta que la cadena final alcanza la longitud deseada:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padBoth(10, '_');
 
// '__James___'
 
$padded = Str::of('James')->padBoth(10);
 
// ' James '

padLeft

El método padLeft envuelve la función str_pad de PHP, rellenando el lado izquierdo de una cadena con otra cadena hasta que la cadena final alcanza la longitud deseada:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padLeft(10, '-=');
 
// '-=-=-James'
 
$padded = Str::of('James')->padLeft(10);
 
// ' James'

padRight

El método padRight envuelve la función str_pad de PHP, rellenando el lado derecho de una cadena con otra cadena hasta que la cadena final alcance la longitud deseada:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padRight(10, '-');
 
// 'James-----'
 
$padded = Str::of('James')->padRight(10);
 
// 'James '

pipe

El método pipe permite transformar la cadena pasando su valor actual a la llamada dada:

use Illuminate\Support\Str;
 
$hash = Str::of('Laravel')->pipe('md5')->prepend('Checksum: ');
 
// 'Checksum: a5c95b86291ea299fcbe64458ed12702'
 
$closure = Str::of('foo')->pipe(function ($str) {
return 'bar';
});
 
// 'bar'

plural

El método plural convierte una cadena de palabras en singular a su forma plural. Esta función soporta cualquiera de los lenguajes soportados por el pluralizador de Laravel:

use Illuminate\Support\Str;
 
$plural = Str::of('car')->plural();
 
// cars
 
$plural = Str::of('child')->plural();
 
// children

Puede proporcionar un número entero como segundo argumento de la función para recuperar la forma singular o plural de la cadena:

use Illuminate\Support\Str;
 
$plural = Str::of('child')->plural(2);
 
// children
 
$plural = Str::of('child')->plural(1);
 
// child

prepend

El método prepend añade los valores dados a la cadena:

use Illuminate\Support\Str;
 
$string = Str::of('Framework')->prepend('Laravel ');
 
// Laravel Framework

remove

El método remove elimina el valor o el array de valores dados de la cadena:

use Illuminate\Support\Str;
 
$string = Str::of('Arkansas is quite beautiful!')->remove('quite');
 
// Arkansas is beautiful!

También puede pasar false como segundo parámetro para ignorar mayúsculas y minúsculas al eliminar cadenas.

replace

El método replace reemplaza una cadena dada dentro de la cadena:

use Illuminate\Support\Str;
 
$replaced = Str::of('Laravel 6.x')->replace('6.x', '7.x');
 
// Laravel 7.x

replaceArray

El método replaceArray reemplaza un valor dado en la cadena secuencialmente usando un array:

use Illuminate\Support\Str;
 
$string = 'The event will take place between ? and ?';
 
$replaced = Str::of($string)->replaceArray('?', ['8:30', '9:00']);
 
// The event will take place between 8:30 and 9:00

replaceFirst

El método replaceFirst reemplaza la primera aparición de un valor dado en una cadena:

use Illuminate\Support\Str;
 
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceFirst('the', 'a');
 
// a quick brown fox jumps over the lazy dog

replaceLast

El método replaceLast reemplaza la última aparición de un valor dado en una cadena:

use Illuminate\Support\Str;
 
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceLast('the', 'a');
 
// the quick brown fox jumps over a lazy dog

replaceMatches

El método replaceMatches sustituye todas las partes de una cadena que coincidan con un patrón por la cadena de sustitución dada:

use Illuminate\Support\Str;
 
$replaced = Str::of('(+1) 501-555-1000')->replaceMatches('/[^A-Za-z0-9]++/', '')
 
// '15015551000'

El método replaceMatches también acepta un closure que será invocado con cada porción de la cadena que coincida con el patrón dado, permitiéndole realizar la lógica de reemplazo dentro del closure y devolver el valor reemplazado:

use Illuminate\Support\Str;
 
$replaced = Str::of('123')->replaceMatches('/\d/', function ($match) {
return '['.$match[0].']';
});
 
// '[1][2][3]'

rtrim

El método rtrim recorta el lado derecho de la cadena dada:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->rtrim();
 
// ' Laravel'
 
$string = Str::of('/Laravel/')->rtrim('/');
 
// '/Laravel'

scan

El método scan analiza la entrada de una cadena en una colección de acuerdo a un formato soportado por la función PHPsscanf:

use Illuminate\Support\Str;
 
$collection = Str::of('filename.jpg')->scan('%[^.].%s');
 
// collect(['filename', 'jpg'])

singular

El método singular convierte una cadena a su forma singular. Esta función soporta cualquiera de los lenguajes soportados por el pluralizador de Laravel:

use Illuminate\Support\Str;
 
$singular = Str::of('cars')->singular();
 
// car
 
$singular = Str::of('children')->singular();
 
// child

slug

El método slug genera una URL amigable "slug" a partir de la cadena dada:

use Illuminate\Support\Str;
 
$slug = Str::of('Laravel Framework')->slug('-');
 
// laravel-framework

snake

El método snake convierte la cadena dada a snake_case:

use Illuminate\Support\Str;
 
$converted = Str::of('fooBar')->snake();
 
// foo_bar

split

El método split divide una cadena en una colección utilizando una expresión regular:

use Illuminate\Support\Str;
 
$segments = Str::of('one, two, three')->split('/[\s,]+/');
 
// collect(["one", "two", "three"])

squish

El método squish elimina todos los espacios en blanco extraños de una cadena, incluidos los espacios en blanco extraños entre palabras:

use Illuminate\Support\Str;
 
$string = Str::of(' laravel framework ')->squish();
 
// laravel framework

start

El método start añade una única instancia del valor dado a una cadena si no empieza ya con ese valor:

use Illuminate\Support\Str;
 
$adjusted = Str::of('this/string')->start('/');
 
// /this/string
 
$adjusted = Str::of('/this/string')->start('/');
 
// /this/string

startsWith

El método startsWith determina si la cadena dada empieza por el valor dado:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->startsWith('This');
 
// true

studly

El método studly convierte la cadena dada a StudlyCase:

use Illuminate\Support\Str;
 
$converted = Str::of('foo_bar')->studly();
 
// FooBar

substr

El método substr devuelve la parte de la cadena especificada por los parámetros start y length dados:

use Illuminate\Support\Str;
 
$string = Str::of('Laravel Framework')->substr(8);
 
// Framework
 
$string = Str::of('Laravel Framework')->substr(8, 5);
 
// Frame

substrReplace

El método substrReplace sustituye texto dentro de una parte de una cadena, empezando en la posición especificada por el segundo argumento y sustituyendo el número de caracteres especificado por el tercer argumento. Si se pasa 0 al tercer argumento del método, se insertará la cadena en la posición especificada sin reemplazar ninguno de los caracteres existentes en la cadena:

use Illuminate\Support\Str;
 
$string = Str::of('1300')->substrReplace(':', 2);
 
// 13:
 
$string = Str::of('The Framework')->substrReplace(' Laravel', 3, 0);
 
// The Laravel Framework

swap

El método swap reemplaza múltiples valores en la cadena usando la función strtr de PHP:

use Illuminate\Support\Str;
 
$string = Str::of('Tacos are great!')
->swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
]);
 
// Burritos are fantastic!

tap

El método tap pasa la cadena al closure dado, permitiéndole examinar e interactuar con la cadena sin afectar a la propia cadena. La cadena original es devuelta por el método tap independientemente de lo que sea devuelto por el closure:

use Illuminate\Support\Str;
 
$string = Str::of('Laravel')
->append(' Framework')
->tap(function ($string) {
dump('String after append: '.$string);
})
->upper();
 
// LARAVEL FRAMEWORK

test

El método test determina si una cadena coincide con el patrón de expresión regular dado:

use Illuminate\Support\Str;
 
$result = Str::of('Laravel Framework')->test('/Laravel/');
 
// true

title

El método title convierte la cadena dada a Title Case:

use Illuminate\Support\Str;
 
$converted = Str::of('a nice title uses the correct case')->title();
 
// A Nice Title Uses The Correct Case

trim

El método trim recorta la cadena dada:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->trim();
 
// 'Laravel'
 
$string = Str::of('/Laravel/')->trim('/');
 
// 'Laravel'

ucfirst

El método ucfirst devuelve la cadena dada con el primer carácter en mayúscula:

use Illuminate\Support\Str;
 
$string = Str::of('foo bar')->ucfirst();
 
// Foo bar

ucsplit

El método ucsplit divide la cadena dada en una colección por caracteres en mayúsculas:

use Illuminate\Support\Str;
 
$string = Str::of('Foo Bar')->ucsplit();
 
// collect(['Foo', 'Bar'])

upper

El método upper convierte la cadena dada a mayúsculas:

use Illuminate\Support\Str;
 
$adjusted = Str::of('laravel')->upper();
 
// LARAVEL

when

El método when invoca el closure dado si una condición dada es true. El closure recibirá la instancia de la cadena fluent:

use Illuminate\Support\Str;
 
$string = Str::of('Taylor')
->when(true, function ($string) {
return $string->append(' Otwell');
});
 
// 'Taylor Otwell'

Si es necesario, puede pasar otro closure como tercer parámetro al método when. Este closure se ejecutará si el parámetro de la condición se evalúa como false.

whenContains

El método whenContains invoca el closure dado si la cadena contiene el valor dado. El closure recibirá la instancia fluent string:

use Illuminate\Support\Str;
 
$string = Str::of('tony stark')
->whenContains('tony', function ($string) {
return $string->title();
});
 
// 'Tony Stark'

Si es necesario, puede pasar otro closure como tercer parámetro al método when. Este closure se ejecutará si la cadena no contiene el valor dado.

También puede pasar un array de valores para determinar si la cadena dada contiene alguno de los valores de el array:

use Illuminate\Support\Str;
 
$string = Str::of('tony stark')
->whenContains(['tony', 'hulk'], function ($string) {
return $string->title();
});
 
// Tony Stark

whenContainsAll

El método whenContainsAll invoca el closure dado si la cadena contiene todas las subcadenas dadas. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('tony stark')
->whenContainsAll(['tony', 'stark'], function ($string) {
return $string->title();
});
 
// 'Tony Stark'

Si es necesario, puede pasar otro closure como tercer parámetro al método when. Este closure se ejecutará si el parámetro de condición es false.

whenEmpty

El método whenEmpty invoca el closure dado si la cadena está vacía. Si el closure devuelve un valor, éste también será devuelto por el método whenEmpty. Si el closure no devuelve ningún valor, se devolverá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of(' ')->whenEmpty(function ($string) {
return $string->trim()->prepend('Laravel');
});
 
// 'Laravel'

whenNotEmpty

El método whenNotEmpty invoca el closure dado si la cadena no está vacía. Si el closure devuelve un valor, éste también será devuelto por el método whenNotEmpty. Si el closure no devuelve ningún valor, se devolverá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('Framework')->whenNotEmpty(function ($string) {
return $string->prepend('Laravel ');
});
 
// 'Laravel Framework'

whenStartsWith

El método whenStartsWith invoca el closure dado si la cadena comienza con la subcadena dada. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('disney world')->whenStartsWith('disney', function ($string) {
return $string->title();
});
 
// 'Disney World'

whenEndsWith

El método whenEndsWith invoca el closure dado si la cadena termina con la subcadena dada. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('disney world')->whenEndsWith('world', function ($string) {
return $string->title();
});
 
// 'Disney World'

whenExactly

El método whenExactly invoca el closure dado si la cadena coincide exactamente con la cadena dada. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('laravel')->whenExactly('laravel', function ($string) {
return $string->title();
});
 
// 'Laravel'

whenNotExactly

El método whenNotExactly invoca el closure dado si la cadena no coincide exactamente con la cadena dada. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('framework')->whenNotExactly('laravel', function ($string) {
return $string->title();
});
 
// 'Framework'

whenIs

El método whenIs invoca el closure dado si la cadena coincide con un patrón dado. Se pueden utilizar asteriscos como comodines. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('foo/bar')->whenIs('foo/*', function ($string) {
return $string->append('/baz');
});
 
// 'foo/bar/baz'

whenIsAscii

El método whenIsAscii invoca el closure dado si la cadena es ASCII de 7 bits. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('laravel')->whenIsAscii(function ($string) {
return $string->title();
});
 
// 'Laravel'

whenIsUlid

El método whenIsUlid invoca el closure dado si la cadena es un ULID válido. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function ($string) {
return $string->substr(0, 8);
});
 
// '01gd6r36'

whenIsUuid

El método whenIsUuid invoca el closure dado si la cadena es un UUID válido. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('a0a2a2d2-0b87-4a18-83f2-2529882be2de')->whenIsUuid(function ($string) {
return $string->substr(0, 8);
});
 
// 'a0a2a2d2'

whenTest

El método whenTest invoca el closure dado si la cadena coincide con la expresión regular dada. El closure recibirá la instancia de cadena fluida:

use Illuminate\Support\Str;
 
$string = Str::of('laravel framework')->whenTest('/laravel/', function ($string) {
return $string->title();
});
 
// 'Laravel Framework'

wordCount

El método wordCount devuelve el número de palabras que contiene una cadena:

use Illuminate\Support\Str;
 
Str::of('Hello, world!')->wordCount(); // 2

words

El método words limita el número de palabras de una cadena. Si es necesario, puede especificar una cadena adicional que se añadirá a la cadena truncada:

use Illuminate\Support\Str;
 
$string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>');
 
// Perfectly balanced, as >>>

URLs

action()

La función action genera una URL para la acción del controlador dada:

use App\Http\Controllers\HomeController;
 
$url = action([HomeController::class, 'index']);

Si el método acepta parámetros de ruta, puede pasarlos como segundo argumento al método:

$url = action([UserController::class, 'profile'], ['id' => 1]);

asset()

La función asset genera una URL para un asset utilizando el esquema actual de la petición (HTTP o HTTPS):

$url = asset('img/photo.jpg');

Puede configurar el host de la URL de asset estableciendo la variable ASSET_URL en su archivo .env. Esto puede ser útil si aloja sus activos en un servicio externo como Amazon S3 u otro CDN:

// ASSET_URL=http://example.com/assets
 
$url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg

route()

La función route genera una URL para una ruta dada:

$url = route('route.name');

Si la ruta acepta parámetros, puede pasarlos como segundo argumento a la función:

$url = route('route.name', ['id' => 1]);

Por defecto, la función route genera una URL absoluta. Si desea generar una URL relativa, puede pasar false como tercer argumento a la función:

$url = route('route.name', ['id' => 1], false);

secure_asset()

La función secure_asset genera una URL para un activo utilizando HTTPS:

$url = secure_asset('img/photo.jpg');

secure_url()

La función secure_url genera una URL HTTPS completa para la ruta indicada. Se pueden pasar segmentos de URL adicionales en el segundo argumento de la función:

$url = secure_url('user/profile');
 
$url = secure_url('user/profile', [1]);

to_route()

La función to_route genera una respuesta HTTP de redirección para una ruta determinada:

return to_route('users.show', ['user' => 1]);

Si es necesario, puede pasar el código de estado HTTP que debe asignarse a la redirección y cualquier cabecera de respuesta adicional como tercer y cuarto argumento del método to_route:

return to_route('users.show', ['user' => 1], 302, ['X-Framework' => 'Laravel']);

url()

La función url genera una URL completa para la ruta dada:

$url = url('user/profile');
 
$url = url('user/profile', [1]);

Si no se proporciona ninguna ruta, se devuelve una instancia de Illuminate\Routing\UrlGenerator:

$current = url()->current();
 
$full = url()->full();
 
$previous = url()->previous();

Varios

abort()

La función abort lanza una excepción HTTP que será procesada por el gestor de excepciones:

abort(403);

También puede proporcionar el mensaje de la excepción y las cabeceras de respuesta HTTP personalizadas que deben enviarse al navegador:

abort(403, 'Unauthorized.', $headers);

abort_if()

La función abort_if lanza una excepción HTTP si una expresión booleana dada se evalúa como true:

abort_if(! Auth::user()->isAdmin(), 403);

Al igual que el método abort, también puede proporcionar el texto de respuesta de la excepción como tercer argumento y un array de cabeceras de respuesta personalizadas como cuarto argumento de la función.

abort_unless()

La función abort_unless lanza una excepción HTTP si una expresión booleana dada se evalúa como false:

abort_unless(Auth::user()->isAdmin(), 403);

Al igual que en el método abort, también puede proporcionar el texto de respuesta de la excepción como tercer argumento y un array de encabezados de respuesta personalizados como cuarto argumento de la función.

app()

La función app devuelve la instancia del contenedor de servicios:

$container = app();

Puede pasar un nombre de clase o interfaz para resolverlo desde el contenedor:

$api = app('HelpSpot\API');

auth()

La función auth devuelve una instancia authenticator. Puede utilizarla como alternativa a la facade Auth:

$user = auth()->user();

Si es necesario, puede especificar a qué instancia de guard desea acceder:

$user = auth('admin')->user();

back()

La función back genera una respuesta HTTP de redirección a la ubicación anterior del usuario:

return back($status = 302, $headers = [], $fallback = '/');
 
return back();

bcrypt()

La función bcrypt realiza el hash del valor dado utilizando Bcrypt. Puede utilizar esta función como alternativa a la facade Hash:

$password = bcrypt('my-secret-password');

blank()

La función blank determina si el valor dado es "blank":

blank('');
blank(' ');
blank(null);
blank(collect());
 
// true
 
blank(0);
blank(true);
blank(false);
 
// false

Para la inversa de blank, véase el método filled.

broadcast()

La función broadcast realiza el broadcast del evento dado a sus oyentes:

broadcast(new UserRegistered($user));
 
broadcast(new UserRegistered($user))->toOthers();

cache()

La función cache puede utilizarse para obtener valores de la cache. Si la clave dada no existe en la cache, se devolverá un valor por defecto opcional:

$value = cache('key');
 
$value = cache('key', 'default');

Puede añadir elementos a la cache pasando un array de pares clave / valor a la función. También debe pasar el número de segundos o duración que el valor almacenado en caché debe considerarse válido:

cache(['key' => 'value'], 300);
 
cache(['key' => 'value'], now()->addSeconds(10));

class_uses_recursive()

La función class_uses_recursive devuelve todos los traits utilizados por una clase, incluyendo los traits utilizados por todas sus clases padre:

$traits = class_uses_recursive(App\Models\User::class);

collect()

La función collect crea una instancia de collection a partir del valor dado:

$collection = collect(['taylor', 'abigail']);

config()

La función config obtiene el valor de una variable de configuración. Se puede acceder a los valores de configuración utilizando la sintaxis "dot", que incluye el nombre del archivo y la opción a la que se desea acceder. Se puede especificar un valor por defecto, que se devuelve si la opción de configuración no existe:

$value = config('app.timezone');
 
$value = config('app.timezone', $default);

Puede establecer variables de configuración en tiempo de ejecución pasando un array de pares clave / valor. Sin embargo, tenga en cuenta que esta función sólo afecta al valor de configuración para la solicitud actual y no actualiza sus valores de configuración reales:

config(['app.debug' => true]);

cookie()

La función cookie crea una nueva instancia de cookie:

$cookie = cookie('name', 'value', $minutes);

csrf_field()

La función csrf_field genera un campo de entrada hidden HTML que contiene el valor del token CSRF. Por ejemplo, utilizando la sintaxis Blade:

{{ csrf_field() }}

csrf_token()

La función csrf_token recupera el valor del token CSRF actual:

$token = csrf_token();

decrypt()

La función decrypt descifra el valor dado. Puede utilizar esta función como alternativa a la facade Crypt:

$password = decrypt($value);

dd()

La función dd vuelca las variables dadas y finaliza la ejecución del script:

dd($value);
 
dd($value1, $value2, $value3, ...);

Si no desea detener la ejecución de su script, utilice en su lugar la función dump.

dispatch()

La función dispatch manda el trabajo (job) dado a la cola de trabajos de Laravel:

dispatch(new App\Jobs\SendEmails);

dump()

La función dump vuelca las variables dadas:

dump($value);
 
dump($value1, $value2, $value3, ...);

Si desea detener la ejecución del script después de volcar las variables, utilice la función dd en su lugar.

encrypt()

La función encrypt cifra el valor dado. Puedes usar esta función como alternativa a la facade Crypt:

$secret = encrypt('my-secret-value');

env()

La función env recupera el valor de una variable de entorno o devuelve un valor por defecto:

$env = env('APP_ENV');
 
$env = env('APP_ENV', 'production');

Advertencia
Si ejecutas el comando config:cache durante tu proceso de despliegue, debes asegurarte de que sólo estás llamando a la función env desde dentro de tus archivos de configuración. Una vez que la configuración ha sido cacheada, el archivo .env no será cargado y todas las llamadas a la función env devolverán null.

event()

La función event envía el evento dado a sus "oyentes":

event(new UserRegistered($user));

fake()

La función fake resuelve un singleton Faker del contenedor, lo que puede ser útil al crear datos falsos en factories, seeders, tests o prototipando vistas:

@for($i = 0; $i < 10; $i++)
<dl>
<dt>Name</dt>
<dd>{{ fake()->name() }}</dd>
 
<dt>Email</dt>
<dd>{{ fake()->unique()->safeEmail() }}</dd>
</dl>
@endfor

Por defecto, la función fake utilizará la opción de configuración app.faker_locale en su fichero de configuración config/app.php; sin embargo, también puede especificar la configuración regional pasándola a la función fake. Cada configuración regional resolverá un singleton individual:

fake('nl_NL')->name()

filled()

La función filled determina si el valor dado no es "blank":

filled(0);
filled(true);
filled(false);
 
// true
 
filled('');
filled(' ');
filled(null);
filled(collect());
 
// false

Para la inversa de filled, véase el método blank.

info()

La función info escribirá información en el log de su aplicación:

info('Some helpful information!');

También se puede pasar a la función un array de datos contextuales:

info('User login attempt failed.', ['id' => $user->id]);

logger()

La función logger puede utilizarse para escribir un mensaje de nivel de depuración en el log:

logger('Debug message');

También se puede pasar a la función un array de datos contextuales:

logger('User has logged in.', ['id' => $user->id]);

Se devolverá una instancia de logger si no se pasa ningún valor a la función:

logger()->error('You are not allowed here.');

method_field()

La función method_field genera un campo de entrada hidden HTML que contiene el valor "para burlar" verbo HTTP del formulario. Por ejemplo, utilizando la sintaxis de Blade:

<form method="POST">
{{ method_field('DELETE') }}
</form>

now()

La función now crea una nueva instancia Illuminate\Support\Carbon para la hora actual:

$now = now();

old()

La función old recupera un valor de entrada antiguo introducido en la sesión:

$value = old('value');
 
$value = old('value', 'default');

Dado que el "valor por defecto" proporcionado como segundo argumento a la función old es a menudo un atributo de un modelo Eloquent, Laravel le permite simplemente pasar todo el modelo Eloquent como segundo argumento a la función old. Al hacerlo, Laravel asumirá que el primer argumento proporcionado a la función old es el nombre del atributo de Eloquent que debe considerarse el "valor por defecto":

{{ old('name', $user->name) }}
 
// Is equivalent to...
 
{{ old('name', $user) }}

optional()

La función optional acepta cualquier argumento y permite acceder a propiedades o llamar a métodos de ese objeto. Si el objeto dado es null, las propiedades y métodos devolverán null en lugar de provocar un error:

return optional($user->address)->street;
 
{!! old('name', optional($user)->name) !!}

La función opcional también acepta un closure como segundo argumento. El closure se invocará si el valor proporcionado como primer argumento no es nulo:

return optional(User::find($id), function ($user) {
return $user->name;
});

policy()

El método policy recupera una instancia de policy para una clase dada:

$policy = policy(App\Models\User::class);

redirect()

La función redirect devuelve una respuesta HTTP de redirección, o devuelve la instancia del redirector si se llama sin argumentos:

return redirect($to = null, $status = 302, $headers = [], $https = null);
 
return redirect('/home');
 
return redirect()->route('route.name');

report()

La función report informará de una excepción utilizando su gestor de excepciones:

report($e);

La función report también acepta una cadena como argumento. Cuando se da una cadena a la función, ésta creará una excepción con la cadena dada como mensaje:

report('Something went wrong.');

report_if()

La función report_if informará de una excepción utilizando su gestor de excepciones si la condición dada es true:

report_if($shouldReport, $e);
 
report_if($shouldReport, 'Something went wrong.');

report_unless()

La función report_unless informará de una excepción utilizando su gestor de excepciones si la condición dada es false:

report_unless($reportingDisabled, $e);
 
report_unless($reportingDisabled, 'Something went wrong.');

request()

La función request devuelve la instancia de request actual u obtiene el valor de un campo de entrada de la petición actual:

$request = request();
 
$value = request('key', $default);

rescue()

La función rescue ejecuta el closure dado y captura cualquier excepción que ocurra durante su ejecución. Todas las excepciones capturadas serán enviadas a su gestor de excepciones; sin embargo, la petición continuará procesándose:

return rescue(function () {
return $this->method();
});

También puede pasar un segundo argumento a la función de rescue. Este argumento será el valor "por defecto" que se devolverá si se produce una excepción durante la ejecución del closure:

return rescue(function () {
return $this->method();
}, false);
 
return rescue(function () {
return $this->method();
}, function () {
return $this->failure();
});

resolve()

La función resolve resuelve un nombre de clase o interfaz dado a una instancia utilizando el contenedor de servicios:

$api = resolve('HelpSpot\API');

response()

La función response crea una instancia de response u obtiene una instancia de la fábrica de respuestas:

return response('Hello World', 200, $headers);
 
return response()->json(['foo' => 'bar'], 200, $headers);

retry()

La función retry intenta ejecutar la llamada de retorno dada hasta que se alcanza el umbral máximo de intentos dado. Si la llamada de retorno no lanza una excepción, se devolverá su valor. Si la llamada de retorno lanza una excepción, se reintentará automáticamente. Si se supera el número máximo de intentos, se lanzará la excepción:

return retry(5, function () {
// Attempt 5 times while resting 100ms between attempts...
}, 100);

Si desea calcular manualmente el número de milisegundos que deben transcurrir entre los intentos, puede pasar un closure como tercer argumento a la función de retry:

return retry(5, function () {
// ...
}, function ($attempt, $exception) {
return $attempt * 100;
});

Para mayor comodidad, puede proporcionar un array como primer argumento de la función retry. Esta array se utilizará para determinar cuántos milisegundos deben transcurrir entre los siguientes intentos:

return retry([100, 200], function () {
// Sleep for 100ms on first retry, 200ms on second retry...
});

Para reintentar sólo bajo condiciones específicas, puedes pasar un closure como cuarto argumento a la función retry:

return retry(5, function () {
// ...
}, 100, function ($exception) {
return $exception instanceof RetryException;
});

session()

La función session puede utilizarse para obtener o establecer valores de session:

$value = session('key');

Puede establecer valores pasando un array de pares clave / valor a la función:

session(['chairs' => 7, 'instruments' => 3]);

El almacén de sesiones se devolverá si no se pasa ningún valor a la función:

$value = session()->get('key');
 
session()->put('key', $value);

tap()

La función tap acepta dos argumentos: un $valor arbitrario y un closure. El $valor será pasado al closure y luego devuelto por la función tap. El valor de retorno del closure es irrelevante:

$user = tap(User::first(), function ($user) {
$user->name = 'taylor';
 
$user->save();
});

Si no se pasa ningún closure a la función tap, puede llamar a cualquier método con el $valor dado. El valor de retorno del método al que llame siempre será $valor, independientemente de lo que el método devuelva realmente en su definición. Por ejemplo, el método update de Eloquent normalmente devuelve un entero. Sin embargo, podemos forzar que el método devuelva el propio modelo encadenando la llamada al método update a través de la función tap:

$user = tap($user)->update([
'name' => $name,
'email' => $email,
]);

Para añadir un método tap a una clase, puede añadir el trait Illuminate\Support\Traits\Tappable a la clase. El método tap de este trait acepta un closure como único argumento. La propia instancia del objeto se pasará al closure y luego será devuelta por el método tap:

return $user->tap(function ($user) {
//
});

throw_if()

La función throw_if lanza la excepción dada si una expresión booleana dada se evalúa como 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()

La función throw_unless lanza la excepción dada si una expresión booleana dada es false:

throw_unless(Auth::user()->isAdmin(), AuthorizationException::class);
 
throw_unless(
Auth::user()->isAdmin(),
AuthorizationException::class,
'You are not allowed to access this page.'
);

today()

La función today crea una nueva instancia de Illuminate\Support\Carbon para la fecha actual:

$today = today();

trait_uses_recursive()

La función trait_uses_recursive devuelve todos los traits utilizados por un trait:

$traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class);

transform()

La función transform ejecuta un closure sobre un valor dado si el valor no es blank y luego devuelve el valor de retorno del closure:

$callback = function ($value) {
return $value * 2;
};
 
$result = transform(5, $callback);
 
// 10

Se puede pasar un valor por defecto o un closure como tercer argumento de la función. Este valor se devolverá si el valor dado está vacío:

$result = transform(null, $callback, 'The value is blank');
 
// The value is blank

validator()

La función validator crea una nueva instancia de validator con los argumentos dados. Se puede utilizar como alternativa a la facade Validator:

$validator = validator($data, $rules, $messages);

value()

La función value devuelve el valor que se le da. Sin embargo, si se pasa un closure a la función, el closure se ejecutará y se devolverá su valor:

$result = value(true);
 
// true
 
$result = value(function () {
return false;
});
 
// false

view()

La función view recupera una instancia de view:

return view('auth.login');

with()

La función with devuelve el valor que se le pasa. Si se pasa un closure como segundo argumento a la función, se ejecutará el closure y se devolverá su valor:

$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

Otras utilidades

Benchmarking

A veces es posible que desee probar rápidamente el rendimiento de ciertas partes de su aplicación. En esas ocasiones, puedes utilizar la clase de soporte Benchmark para medir el número de milisegundos que tardan en completarse las llamadas de retorno dadas:

<?php
 
use App\Models\User;
use Illuminate\Support\Benchmark;
 
Benchmark::dd(fn () => User::find(1)); // 0.1 ms
 
Benchmark::dd([
'Scenario 1' => fn () => User::count(), // 0.5 ms
'Scenario 2' => fn () => User::all()->count(), // 20.0 ms
]);

Por defecto, los callbacks dados se ejecutarán una vez (una iteración), y su duración se mostrará en el navegador / consola.

Para invocar una llamada de retorno más de una vez, puede especificar el número de iteraciones que la llamada de retorno debe ser invocada como segundo argumento del método. Cuando se ejecuta un callback más de una vez, la clase Benchmark devolverá la cantidad media de milisegundos que se tardó en ejecutar el callback en todas las iteraciones:

Benchmark::dd(fn () => User::count(), iterations: 10); // 0.5 ms

Lottery

La clase Lottery de Laravel puede utilizarse para ejecutar callbacks basados en un conjunto de probabilidades dadas. Esto puede ser particularmente útil cuando sólo se desea ejecutar código para un porcentaje de las peticiones entrantes:

use Illuminate\Support\Lottery;
 
Lottery::odds(1, 20)
->winner(fn () => $user->won())
->loser(fn () => $user->lost())
->choose();

Puede combinar la clase Lottery de Laravel con otras características de Laravel. Por ejemplo, es posible que sólo desee informar de un pequeño porcentaje de consultas lentas a su gestor de excepciones. Y, puesto que la clase Lottery es invocable, podemos pasar una instancia de la clase a cualquier método que acepte invocables:

use Carbon\CarbonInterval;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Lottery;
 
DB::whenQueryingForLongerThan(
CarbonInterval::seconds(2),
Lottery::odds(1, 100)->winner(fn () => report('Querying > 2 seconds.')),
);

Testing Lottery

Laravel proporciona algunos métodos simples que te permiten probar fácilmente las invocaciones de lotería de tu aplicación:

// Lottery will always win...
Lottery::alwaysWin();
 
// Lottery will always lose...
Lottery::alwaysLose();
 
// Lottery will win then lose, and finally return to normal behavior...
Lottery::fix([true, false]);
 
// Lottery will return to normal behavior...
Lottery::determineResultsNormally();