我试图将两个参数传递给whereHas与Laravel的函数,因为其他它不能使用$businessid但它抛出错误,任何人都可以帮忙吗?
错误:
HomeController.php第16行中的FatalThrowableError:类型错误:函数App\Http\Controllers\Business\User\HomeController :: App\Http\Controllers\Business\User {closure}()的参数太少,1传递给C:\第938行的web\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php,预计正好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'));
}
}
Run Code Online (Sandbox Code Playgroud)
这是你可以将变量传递给函数的方法.
$workerCount = Player::whereHas("roleplay", function($q2) use ($businessid) {
$q2->where('business_id', $businessid);
})->count();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |