【问题标题】:Laravel - syntax error, unexpected ')', expecting '['Laravel - 语法错误,意外')',期待'['
【发布时间】:2019-06-13 20:57:43
【问题描述】:

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

语法错误,意外 ')',期待 '['

控制器

    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>

我试图检查代码,但一无所获。我该如何解决这个问题

【问题讨论】:

  • 您缺少$ 标志
  • 由于这只是一个印刷错误,我已投票结束此问题。

标签: laravel


【解决方案1】:

您错过了刀片 @foreach$serviceoverview 变量中的 $。变化:

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

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

【讨论】:

  • 完成所有这些更正后,我现在遇到另一个错误:htmlspecialchars() 期望参数 1 是字符串,给定对象
【解决方案2】:

这里是更新后的完整代码。请参考这里

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>

【讨论】:

  • 很好看!
  • 在完成所有这些更正之后,我现在遇到另一个错误:htmlspecialchars() 期望参数 1 是字符串,给定对象
  • @user11352561 更改此&lt;td&gt;{{ serviceoverview-&gt;created_at-&gt;format('Y-m-d H:i:s') }}&lt;/td&gt;
  • 错误依然存在。我已更新代码中的错误屏幕
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    改变

    1. @foreach($serviceoverviews as $key =&gt; serviceoverview)@foreach($serviceoverviews as $key =&gt; $serviceoverview)

    2. &lt;td&gt;{{ serviceoverview-&gt;service_name }}&lt;/td&gt;&lt;td&gt;{{ $serviceoverview-&gt;service_name }}&lt;/td&gt;

    3. 您已将{{ $serviceoverview-&gt;links() }} 置于foreach 循环之外

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-02
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多