提问者:小点点

Laravel:将参数传递给函数?


我正试图将两个参数传递给一个函数,在这个函数中,使用Laravel的where has是因为它不能使用$businessid,但它抛出了一个错误,有人能帮忙吗?

错误:

FatalThrowableError in HomeController.php第16行:类型错误:参数太少,无法运行App\Http\Controller\Business\User\HomeController::App\Http\Controller\Business\User{闭包}(),1在C中传递:\web\供应商\laravel\框架\src\照明\数据库\雄辩\B<-PLHD--2/>在938号线,正好2个预期


代码:

<?php

namespace App\Http\Controllers\Business\User;

use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Auth;
use App\Database\Frontend\Roleplay\Business\Businesses;
use App\Database\Frontend\User\Player;

class HomeController extends Controller
{
    public function getView(Request $request, $businessid)
    {
        $workerCount = Player::whereHas("roleplay", function($q2, $businessid) {
            $q2->where('business_id', $businessid);
        })->count();

        $workersWorkingCount = Player::where('currently_working', '1')->whereHas("roleplay", function($q2, $businessid) {
            $q2->where('business_id', $businessid);
        })->count();

        $workersOnlineCount = Player::where('online', '1')->whereHas("roleplay", function($q2, $businessid) {
            $q2->where('business_id', $businessid);
        })->count();

        $workersOfflineCount = Player::where('online', '0')->whereHas("roleplay", function($q2, $businessid) {
            $q2->where('business_id', $businessid);
        })->count();

        return view('business.home', compact(
            'workerCount',
            'workersWorkingCount',
            'workersOnlineCount',
            'workersOfflineCount'));
    }
}

共1个答案

匿名用户

这就是如何将变量传递给函数。

        $workerCount = Player::whereHas("roleplay", function($q2) use ($businessid) {
            $q2->where('business_id', $businessid);
        })->count();