2016-05-04 7 views
1

私Laravelコントローラで、私は次のコードを使用します。どのようにLaravel 5でのMySQL DBのクエリから整数を返すために

$usernotes = DB::select('SELECT note_id FROM note_user WHERE user_id = 1'); 

これは私の多対多のテーブルからnote_idをフェッチすることになっている、そしてそれそうです。しかしreturn $usernotes;出力

[{"paper_id":15}] 

これは、配列や文字列のように見えますが、私はちょうどので、私は

$somevariable = someModel::find($usernotes) 

$usernotesのようなものにそれを置くことができる通常の整数15を必要とする数のようには見えません。そして上記の行を実行すると、私にエラーを与える:私はちょうどその数15て返すことができますどのように

ErrorException in helpers.php line 740: Object of class stdClass could not be converted to string

その文字列の?

+0

- > get() - > toArray();を使用できます。 –

答えて

1

クエリを実行すると、オブジェクトのコレクションが取得されます。 IDを取得するには、それらのオブジェクトの1つのプロパティを取得する必要があります。あなたがモデルを使用している場合

DB::table('note_user')->select('note_id')->where('user_id', 1)->first()->note_id; 

NoteUser::find(1)->note_id; 
+0

すばらしいソリューションがありがとうございました!私は質問に、複数の 'note_id 'があるシナリオについて言及することを忘れていました。私は、DB :: table( 'note_user') - > select( 'note_id') - >( 'user_id'、1) - > first() - > note_id; ( 'note_id') - > where( 'user_id'、1) - > all() - > note_id; 'このようなDB :: table( 'note_user') - > select( 'note_id'定義されていないメソッドを呼び出すと、\ Database \ Query \ Builder :: all()が呼び出されます。複数の 'note_id'でこの作業を行う方法はありますか? –

+1

これはうまくいきませんが、 '$ notes = DB :: table( 'note_user') - >ここで( 'user_id'、1) - > all( 'note_id')'を試してみてください。これが動作しない場合は、代わりに 'get( 'note_id')'を試してください。これも動作しない場合は、Eloquentを使用して 'all()'を使用してください。実際の解決策が得られたら、結果セットをこの 'foreach($ notes as $ note){echo $ note-> note_id;}のようなもので繰り返し処理してください。 } '。 –

0

あなたがモデルを使用している場合にも、このような何かを試みることができる

$id = $usernotes->first()->note_id; // or maybe this will work $id = $usernotes[0]->note_id; 

またはこの:これを試してみてください:

$department_id = Department::select('id')->where('dep_name','=', 'mydepartmentname')->first()->id;

$department_id - データベースから値を割り当てる変数の名前です。 Departmentはモデルidです。最後の部分は、データを描画するテーブルのフィールド名です。これがあなたを助けることを願っています

関連する問題