В Laravel 5 у меня есть двоичное поле, называемое «микрочип», которое является двоичным полем. Я хотел бы создать функцию доступа, которая выводит «да» или «нет», если исходное поле содержит 1 или 0 соответственно. У меня есть это:
public function getMicrochipTextAttribute($input)
{
switch($input)
{
case 0:
return "No";
break;
case 1:
return "Yes";
break;
}
}
К сожалению, когда я использую $ model-> microchip_text, он возвращает «Нет», независимо от содержимого ввода $. Независимо от того, содержит ли $ input значение 1 или 0, он выводит «Нет».
Причина в том, что Eloquent не знает, что $input
вы используете, потому что вы создаете метод доступа для нового свойства, а не для существующего. Вместо этого попробуйте это:
public function getMicrochipTextAttribute()
{
switch($this->attributes['microchip'])
{
case 0:
return "No";
break;
case 1:
return "Yes";
break;
}
}
или более короткая версия:
public function getMicrochipTextAttribute()
{
return $this->attributes['microchip'] ? 'Yes' : 'No';
}
Других решений пока нет …