CentOS7上でLaravelでWEBアプリケーションを作る ~DBクエリ,stdClassの値を直接参照する~
larabel初心者です。というかPHP初心者でもあります。
larabelのDBクラスから値を直接引っこ抜きたいんだけどどうもvar_dumpで表示させてみるとstdClass内に入ってて、このstdClassから直接値を参照しようと通常の連想配列から引き出すような感じで試したところ、Woooops!!ってなるので調べたところ下記で解決したのでその記録に。
select * from user;
id | name | old |
---|---|---|
4 | sato | 20 |
5 | yamada | 20 |
6 | yoshida | 20 |
routes/web.php
Route::get('/', function() { $message = DB::select('select * from user'); echo '<pre>' . var_export($message,true) . '</pre>'; $test= $message[0]; print_r($message[0]); print '<br>'. $message[0]->name; print '<br>'.$message[1]->name; print '<br>'.$message[2]->name.'<br>'; return 'おわり'; });
ブラウザでは下記が表示される
array ( 0 => stdClass::__set_state(array( 'id' => 4, 'name' => 'sato', 'old' => 20, )), 1 => stdClass::__set_state(array( 'id' => 5, 'name' => 'yamada', 'old' => 20, )), 2 => stdClass::__set_state(array( 'id' => 6, 'name' => 'yoshida', 'old' => 20, )), ) stdClass Object ( [id] => 4 [name] => sato [old] => 20 ) sato yamada yoshida OK
下記の表記でいけるっぽい
print '<br>'.$message[0]->name; print '<br>'.$message[1]->name; print '<br>'.$message[2]->name;
上記みたいな形で書けばいいみたい。 何かほかにいい方法知ってたら教えてください。