Laravel-语法错误,意外的')',期望'['

时间:2019-06-13 11:33:34

标签: laravel

我正在使用Laravel 5.8创建一个应用程序。当我想显示视图时,它产生了如下所示的错误:

new error screen

  

语法错误,意外的')',预期为'['

unexpected

控制器

    public function serviceOverview(Request $request)
{
    $data['title'] = 'Subscription Overview';
$serviceoverviews = DB::table("service_package")
   ->join('services', 'services.id', '=', 'service_package.service_id')
   ->join('service_type', 'service_type.id', '=', 'services.service_type')
   ->select('service_package.title as service_id', 'service_package.title as package_name', DB::raw("DATE(service_package.created_at) as created_at"), 'service_package.price', 'service_package.days','services.name as service_name','service_type.name as service_type');

$render=[];

    if(isset($request->package_name))
    {
        $serviceoverviews=$serviceoverviews->where('serviceoverviews','like','%'.$request->serviceoverviews.'%');
        $render['package_name']=$request->package_name;
    }    
    if(isset($request->service_id))
    {
        $serviceoverviews=$serviceoverviews->where('service_id',$request->service_id);
        $render['service_id']=$request->service_id;
    }

    $serviceoverviews= $serviceoverviews->orderBy('created_at','DESC');
    $serviceoverviews= $serviceoverviews->paginate(15);
    $serviceoverviews= $serviceoverviews->appends($render);
    $data['serviceoverviews'] = $serviceoverviews;    

    return view('report.serviceOverview',$data);
}

在控制器中,我尝试进行一些过滤。另外,我也进行了原始查询。

查看

    <div class="box box-primary">
        <div class="box-header with-border">
            @if(Session::has('flash_message'))
        <div class="alert alert-success">
            {{ Session::get('flash_message') }}
        </div>
        @endif 
        @if(count($detailsubscriptions))            
    <table class="table table-bordered table-hover table-striped table-condesed" id="commenter_info_table">
    <caption></caption>
    <thead>
        <tr>
            <td>#</td>
            <td>Service</td>
            <td>Package</td>
            <td>Service Type</td>
            <td>Date</td>
            <td>Price</td>
            <td>Days</td>

        </tr>
    </thead>

    <tbody>
        @foreach($serviceoverviews as $key => serviceoverview)
            <tr>
                <td>{{ ++$key }}</td>
                <td>{{ serviceoverview->service_name }}</td>
                <td>{{ $serviceoverview->package_name }}</td>
                <td>{{ $serviceoverview->service_type }}</td>
                <td>{{ serviceoverview->created_at }}</td>
                <td>{{ $serviceoverview->price }}</td>
                <td>{{ $serviceoverview->days }}</td>                
            </tr>

        @endforeach
            <tr>
            <td colspan="8">
                {{ $serviceoverview->links() }}
            </td>
            </tr>         
    </tbody>  

    </table>   
            @else
        <div class="row text-center">
            <h2>No Service Overview to show</h2>
        </div>
        @endif        
    </div>
    </div>

我试图检查代码,但是什么也没找到。我该如何解决这个问题

4 个答案:

答案 0 :(得分:2)

您已错过刀片$$serviceoverview变量中的@foreach。更改:

@foreach($serviceoverviews as $key => serviceoverview)

收件人

@foreach($serviceoverviews as $key => $serviceoverview)

答案 1 :(得分:1)

此处是更改后的完整代码。请参考此

Controller.php

public function serviceOverview(Request $request)
{
    $builder = DB::table("service_package")
                    ->join('services', 'services.id', '=', 'service_package.service_id')
                    ->join('service_type', 'service_type.id', '=', 'services.service_type')
                    ->select('service_package.title as service_id', 'service_package.title as package_name', DB::raw("DATE(service_package.created_at) as created_at"), 'service_package.price', 'service_package.days','services.name as service_name','service_type.name as service_type');

    if($request->filled('package_name'))) {

        $builder = $builder->where('serviceoverviews','like','%'.$request->serviceoverviews.'%');
    }    

    if(isset($request->service_id))
    {
        $builder=$builder->where('service_id',$request->service_id);
    }

    $serviceoverviews = $builder->orderBy('created_at','DESC')->paginate(15);

    $data = [
        'title' => 'Subscription Overview',
        'serviceoverviews' => $serviceoverviews
    ];

    return view('report.serviceOverview', $data);
}

现在这样更改视图代码。

view.blade.php

<table class="table table-bordered table-hover table-striped table-condesed" id="commenter_info_table">
    <caption></caption>
    <thead>
        <tr>
            <td>#</td>
            <td>Service</td>
            <td>Package</td>
            <td>Service Type</td>
            <td>Date</td>
            <td>Price</td>
            <td>Days</td>

        </tr>
    </thead>

    <tbody>
        @foreach($serviceoverviews as $key => $serviceoverview)
            <tr>
                <td>{{ ++$key }}</td>
                <td>{{ $serviceoverview->service_name }}</td>
                <td>{{ $serviceoverview->package_name }}</td>
                <td>{{ $serviceoverview->service_type }}</td>
                <td>{{ serviceoverview->created_at }}</td>
                <td>{{ $serviceoverview->price }}</td>
                <td>{{ $serviceoverview->days }}</td>                
            </tr>

        @endforeach
        <tr>
            <td colspan="8">
                {{ $serviceoverview->appends(\Request::all())->links() }}
            </td>
        </tr>         
    </tbody>
</table>

答案 2 :(得分:0)

您正在视图文件中使用serviceoverview代替$serviceoverview。那将是一个问题。

答案 3 :(得分:0)

您犯了一些错字和一个逻辑错误。

更改

  1. @foreach($serviceoverviews as $key => serviceoverview)@foreach($serviceoverviews as $key => $serviceoverview)

  2. <td>{{ serviceoverview->service_name }}</td><td>{{ $serviceoverview->service_name }}</td>

  3. 您已将{{ $serviceoverview->links() }}放在foreach循环的外面