2017-01-18 2 views
1

У меня есть ImageController вроде этого:Laravel 5,3 получить логическое значение из ассоциативного массива

$image = Image::where('id', $id)->first(); 

return [ 
    'image' => $image, 
    'image_360' => $image['360'] 
]; 

предыдущей строки возврата к браузеру следующее:

{ 
    "image": { 
     "id": 1, 
     "name": "default.jpg", 
     "360": 1, 
    }, 
    "image_360": null 
} 

Image миграция:

$table->increments('id'); 
$table->string('name'); 
$table->boolean('360'); 

Image модель:

class Image extends Model 
{ 
    protected $fillable = ['name', '360']; 

    protected $casts = [ 
     '360' => 'boolean' 
    ]; 
} 

Почему $images['360'] возвращает null, если его значение равно true?

+0

вам нужно, чтобы бросить его в 'boolean'. –

+0

Если я использую его как '(bool) $ image ['360']', он возвращает 'false', когда ожидаемое значение равно' true' – cespon

+0

var_dump ($ image ['360']) и var_dump ($ image)? ?? –

ответ

1

Вот обходной путь: Я судимый много способов, но бедный человеку получить прямой способ доступа к численному значению, как descripted в этом post

return [ 
    'image' => $image, 
    'image_360' => array_values($image->toArray())[2]; 
]; 
Смежные вопросы