Решение 1
Начиная с PHP 7, появилась новая функция, называемая Оператор объединения нулей .Он возвращает первый оператор, когда он существует, и не является NULL
:
{{ $model->attribute ?? '-' }}
То же самое, что и это:
{{ isset($model->attribute) ? $model->attribute : '-' }}
Решение 2
Другое решениебыло бы немного сложнее, но выполнимо:
Создайте базовую модель, на которую вы распространите все остальные модели:
class BaseModel extends Model {
protected $emptyAttributes = [];
protected function getAttribute($property)
{
if (in_array($property, $this->emptyAttributes) && blank($this->attributes[$property])) {
return '-';
}
else {
return $this->attributes[$property];
}
}
}
Теперь распространите все модели, которые вы хотите, на этот новый класс исоздайте массив «атрибутов для замены»:
class User extends BaseModel {
protected $emptyAttributes = ['name', 'email'];
}
Это должно автоматически заменить атрибуты name
и email
, когда они пусты, NULL или строка только пробелов.
Примечание: Вы также можете перенести функциональность в черту (что может быть более элегантным решением, но это зависит от вас).