У меня такой запрос:

 static function findIdOnName($pageName){
    return Fanpages::select('id')
                ->where('url', '=', $pageName)
            ->get();
}

Ответ: (по завершении print_r)

[{"id": 17}]

Мне просто нужен INT (в данном случае 17). Я поискал его в сети, но не нашел ничего по этому поводу. Случайно пробовал добавить -> toString () и т. Д. В запрос, но пока ничего не помогло.

0
Chilion 13 Май 2014 в 16:43

2 ответа

Лучший ответ

Ваш код возвращает Collection с одним Model (или несколькими моделями, если есть другие, соответствующие предложению where), а вам нужен метод pluck:

return Fanpages::where('url', '=', $pageName)->pluck('id');
// returns INT 17

Поскольку он возвращает значение для столбца id первой строки, соответствующей предложению WHERE.

2
Jarek Tkaczyk 13 Май 2014 в 13:35

Если вы не вернете представление с данными, Laravel автоматически преобразует ваши данные в json. Чтобы достичь того, что вы хотите, вы можете просто сделать что-то вроде

$data = Fanpages::select('id')->where('url', '=', $pageName)->get();
die($data->id);

Однако выходить из приложения подобным образом не рекомендуется. Вы должны либо сохранить ответ json и работать с ним, либо отправить данные в базовый шаблон лезвия.

2
Chris G 13 Май 2014 в 12:53