前提
lumenをVScodeを使って開発をしておりますが、
VScodeのエラー判定で問題ないかを不安な点があるので、ご回答いただけると幸いです。
環境:lumen6.2.0
実現したいこと
VSCodeで表示されているエラーの解消
Colntrollerの、$data->user_name
にVSCodeでは波線がでて、F8で詳細を表示すると
五kエラーが表示されます。
Expected type 'object'. Found 'array'.intelephense(1006)
実際builder->firstで受け取る方はオブジェクトのため、問題はないと思いますが、
不安なので、念のため確認です。
$data['user_name']
とすると、VSCodeではエラーは解消するのですが、
Unitテストで実施すると、オブジェクトなのでarrayではありませんとエラーメッセージが表示されます。
foreachで値を取得する方法は確実だとは思いますが、first()で取得している意味がないなと思っています。
該当のソースコード
MainController
public function index() { $ary = array( 'user_id' => ) $User = new UserModel(); $data = $User->getUser($ary); if (empty($data)) { Log::error("ユーザー情報取得エラー"); return false; } return $data->user_name }
UserModel
class UserModel extends CommonModel { function public getUser($ary = array()) { try { $column = ['user_id', 'user_name']; $this->builder->select($column); $this->builder->where($this->table. 'user_id', $ary['user_id']); return $this->builder->first(); } catch (Exception $ex) { throw $ex } } }
試したこと
以下は試しました
foreach ($data as $key => $val) { $name = $key; $$name = $val }
0 コメント