如何在php变量中存储没有列名的sql结果?

时间:2016-06-01 11:13:29

标签: php mysql eloquent

我正在尝试在变量中痛解sql的结果。以下是sql(eloquent):

$key = $request->input('product_key'); // from previous page
$category_id = ProductModel::select(‘category_id’)->where(‘product_id’, $key)->get();

echo $category_id;

但是当我回应它时,输出看起来像[{“category_id”:301}]

我想只有301才能在变量中保存,以便我可以进一步使用它?

基本上我想得到所有class_id与给定产品相同的产品。注意我只有prodcut_id。

2 个答案:

答案 0 :(得分:1)

也许您正在引用value方法。在这里找到更多相关信息

https://laravel.com/docs/5.2/queries#retrieving-results

  

如果您甚至不需要整行,则可以使用value方法从记录中提取单个值。此方法将直接返回列的值:

来自文档的示例用法

$email = DB::table('users')->where('name', 'John')->value('email');

答案 1 :(得分:0)

尝试使用Eloquent的pluck方法:https://laravel.com/docs/5.2/collections#method-pluck

$key = $request->input('product_key');
$category_id = ProductModel::where('product_id', $key)->pluck('category_id')->all();
echo $category_id;

这应该会产生一个包含单个元素的数组,这是您搜索的category_id(或key匹配多行时的更多元素,但只能匹配您想要的值)。