我在Laravel
项目中工作时遇到了问题。
方法[where]不存在。我知道'Where
'条款导致它。
我研究了它,但找不到解决方案。最后我不得不问这里。
$data = Track::where(
[
['generated_by', '=', Input::get('user_id')],
['id', '=',Input::get('track_id') ],
])->get();
$finalResult = array('code' => 100,
'msg' => 'Your Account is found.',
'data' => $data
);
我的控制器名称是Track
。我还制作了一个名为Track
的模型。相应的表名为tracks
,因为laravel
要求它是您的模型的复数。
在这种情况下,有人可以帮助我吗?
答案 0 :(得分:1)
解决了问题。 问题是因为我有相同名称的控制器(Track)和我的模型(Track)。
我必须在我的模型前面使用\ App \来引用模型所以我的代码将成为
$data = \App\Track::where(
[
['genrated_by', '=', Input::get('user_id')],
['id', '=',Input::get('track_id') ],
])->get();
$finalResult = array('code' => 100,
'msg' => 'Your Account is found.',
'data' => $data
);
答案 1 :(得分:0)
您的问题是您有一个名为Track
的控制器和模型。当你使用Track::where()
时,它会假设你的控制器中调用了where方法。
很遗憾,您无法将模型导入为Track
,因为这样会出现命名冲突。
您需要为Track
模型添加别名。
在导入语句(use
)中,添加以下内容......
use App\Track as TrackModel;
这假设您的模型位于App
命名空间中。并修改你的代码...
TrackModel::where()...
这应该让它运作起来。但是我强烈建议您使用正确的命名约定。你可能会遇到很多陷入这条路的陷阱,很容易避免。控制器应以Controller
结束。