builder->firstの戻り値の型がobjectなのですが、VScodeでarray判断されてしまう

前提

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 コメント