【发布时间】:2019-08-27 07:29:30
【问题描述】:
我想在另一个控制器中调用一个函数。当我打电话给我一个错误。
调用未定义的方法 Illuminate\Database\Query\Builder::defaultBuckets()
我不知道为什么它会给我这个错误。我不知道我在另一个控制器中正确地调用了这个函数。这是我的代码。请帮忙。
这是我在 BucketController 中创建的函数:
public function defaultBuckets()
{
$buckets = Bucket::where('bucket_type', 'default')->get();
}
这是我的配置文件控制器函数我在哪里调用这个函数:
public function show(User $user)
{
$authUser = JWTAuth::parseToken()->toUser();
if (! $user->isBlocking($authUser) && ! $user->isBlockedBy($authUser)) {
if($authUser->id == $user->id){
$profile = $user->where('id', $user->id)->defaultBuckets()->with([
'posts', 'likes', 'followers', 'following'])->first();
} else{
$profile = $user->where('id', $user->id)->with([
'posts' => function ($query) {
$query->where('post_type', 'public');
},
'buckets' => function ($query) {
$query->where('bucket_type', 'public');
},
'likes' => function ($query) {
$query->where('post_type', 'public');
},
'followers', 'following'])->first();
}
return response()->json(['profile'=> $profile], 200);
}
return response()->json(['message'=> 'Your are not able to open profile of this user'], 200);
}
【问题讨论】:
-
您正在调用由
$user->where('id', $user->id)返回的Builder对象上的函数。你没有在控制器上调用它 -
那我该怎么办?
-
这个函数需要做什么?你的函数只是填充一个变量,但什么都不做
-
我想在配置文件中显示我从这个函数获得的默认存储桶,这就是我称之为@mi的原因
-
你需要创建一个你的控制器实例
$bucketController = new BucketController();然后$bucketController->defaultBuckets();
标签: laravel-5