Laravel-将字符串参数从视图传递到控制器

Laravel-将字符串参数从视图传递到控制器,laravel,Laravel,我有这些桌子: users (User): username,plan billings: (Billings): email,amount,plan 我的问题是,在用户表中,计划是整数(1=每日,2=每周,3=每月),而在billings表中,计划是varchar(每日,每周,每月)。我使用billings模型创建了billing controller和视图。我想把这两个领域联系起来 这是创建账单的工作代码: 控制器 public function usersBilling() {

我有这些桌子:

users (User): username,plan
billings: (Billings): email,amount,plan
我的问题是,在用户表中,计划是整数(1=每日,2=每周,3=每月),而在billings表中,计划是varchar(每日,每周,每月)。我使用billings模型创建了billing controller和视图。我想把这两个领域联系起来

这是创建账单的工作代码:

控制器

public function usersBilling()
{
    $billings = DB::table("billings")
        ->select("billings.plan", DB::raw("COUNT(billings.plan) as total_plans") ,DB::raw("SUM(billings.amount) as total_amount"))
        ->join("users","users.email","=","billings.email")
        ->groupBy("billings.plan")
        ->orderByRaw('billings.plan ASC')
        ->paginate(15);

    return view('report.usersBilling', compact('billings'));        
}  
report/usersBilling.blade.php

<td><a href="{{ route('report.showBillingDetail',$billing->plan) }}">{{ $billing->plan }}</a></td>               
<td>{{ $billing->total_plans }}</td>
<td>{{ $billing->total_amount }}</td>
我想完成这个

当我通过中的链接单击计划时:

href="{{ route('report.showBillingDetail',$billing->plan) }}"

它应该显示具有该计划的所有用户。由于users表中的plan是整数(1,2,3),billings表中的plan是varchar(每日、每周、每月),如何在UserController中编写查询,从billing视图接收plan参数,并将其与plan in users表关联,并根据参数选择users表中的所有字段
1=每日
2=每周
3=每月
,理想情况下,您必须使用雄辩的模型来查询数据库。它将为您提供管理此类案例的灵活性

但是如果您更喜欢
DB::table()
,那么您可以再添加一个select字段,该字段将标识您的计划,如
每日
每周
每月

public function usersBilling()
{
    $billings = DB::table("billings")
        ->select("billings.plan", DB::raw("COUNT(billings.plan) as total_plans") ,DB::raw("SUM(billings.amount) as total_amount", DB::raw("IF(billings.plan == 1), 'daily", IF(billings.plan == 2), 'weekly', 'monthly')))
        ->join("users","users.email","=","billings.email")
        ->groupBy("billings.plan")
        ->orderByRaw('billings.plan ASC')
        ->paginate(15);

    return view('report.usersBilling', compact('billings'));        
}

我认为这将对您有所帮助。

理想情况下,您必须使用雄辩的模型来查询数据库。它将为您提供管理此类案例的灵活性

但是如果您更喜欢
DB::table()
,那么您可以再添加一个select字段,该字段将标识您的计划,如
每日
每周
每月

public function usersBilling()
{
    $billings = DB::table("billings")
        ->select("billings.plan", DB::raw("COUNT(billings.plan) as total_plans") ,DB::raw("SUM(billings.amount) as total_amount", DB::raw("IF(billings.plan == 1), 'daily", IF(billings.plan == 2), 'weekly', 'monthly')))
        ->join("users","users.email","=","billings.email")
        ->groupBy("billings.plan")
        ->orderByRaw('billings.plan ASC')
        ->paginate(15);

    return view('report.usersBilling', compact('billings'));        
}

我想这会对你有所帮助。

对不起,你不理解我的意思。您触摸的控制器工作正常。我只将其显示为显示参数将在其中传递的视图。我想将该视图中的参数传递给该控制器,但我不知道如何完善其他查询。>公共函数showBillingDetails对不起,你不明白我的意思。您触摸的控制器工作正常。我只将其显示为显示参数将在其中传递的视图。我想将该视图中的参数传递给该控制器,但我不知道如何完善其他查询。>公共功能展示详情