make - ¿Cuál es la mejor práctica para crear una función auxiliar personalizada en php Laravel 5?
laravel make helpers (2)
- Dentro de su
app/Http
directorioapp/Http
, cree un archivohelpers.php
y agregue sus funciones. - Dentro de
composer.json
, en el bloque deautoload
, agregue"files": ["app/Http/helpers.php"]
. - Ejecutar
composer dump-autoload
Deberias hacer eso. :)
yo tengo
la fecha predeterminada de created_at sigue imprimiéndose en formato MySQL: 2015-06-12 09:01:26. Quería imprimirlo a mi manera, como 12/2/2017
, y otros formatos en el futuro.
yo creé
un archivo llamado DataHelper.php
y almacenarlo en /app/Helpers/DateHelper.php
- y se parece a esto
<?php
namespace App/Helpers;
class DateHelper {
public static function dateFormat1($date) {
if ($date) {
$dt = new DateTime($date);
return $dt->format("m/d/y"); // 10/27/2014
}
}
}
quiero
para poder llamarlo en mi hoja de vista como
DateHelper::dateFormat1($user->created_at)
No estoy seguro de qué hacer a continuación.
¿Cuál es la mejor práctica para crear una función auxiliar personalizada en php Laravel 5?
Ya que su método de ayuda es estático, puede agregar su clase de ayuda al alias config/app
como una fachada, así:
''aliases'' => [
//''dateHelper''=> ''App/Helpers/DateHelper'', //for Laravel 5.0
''dateHelper''=> App/Helpers/DateHelper::class, //for Laravel 5.1
]
Luego, más adelante en su opinión:
{{dateHelper::dateFormat1($user->created_at)}}
Sin embargo, si también está buscando una manera de hacerlo sin una clase de ayuda. Puede considerar el uso de Mutadores y Anexos en su modelo:
class User extends Model{
protected $fillable = [
''date''
];
protected $appends = [
''date_format_two''
];
public function getDateAttribute($value){
$dt = new DateTime($value);
return $dt->format("m/d/y"); // 10/27/2014
}
//date
public function getDateFormatTwoAttribute($value){
$dt = new DateTime($value);
return $this->attributes[''date_format_two''] = $dt->format("m, d ,y"); // 10,27,2014
}
}
Mas tarde puedes hacer
$user = User::find(1);
{{$user->date}};
{{$user->date_format_two}};