将数组传递给路由链接会丢失所需的参数错误?

时间:2018-03-26 09:45:30

标签: laravel

我在控制器中有这个代码,它返回一个包含我想要的数组的视图:

$collection = $history->getCollection();
return view('dashPages.serviceHistory', compact('history', 'collection'));

我在刀片文件中有这个链接,我希望通过以下方式传递数组:

<a href="{{route('viewPDF', $collection)}}" target="_blank">View as PDF</a>

我有这条路线:

Route::get('/serviceHistory/pdf/{history}', 'ServiceHistoryController@viewPdf')->name('viewPDF');

我的问题是在锚标记中的路由中传递$ collection变量会引发缺少必需参数的错误。我可以确认数组确实有数据。如果我传给它一个值,如123或&#34; abc&#34;页面加载就好了。此外,我正在尝试使用DomPDF,但我认为这与此处的问题无关。

任何帮助将不胜感激。

编辑这是我用于加载页面的整个索引函数:

public function index()
{   
    $user_id = auth()->user()->id;
    $history = new ServiceHistory;

    //Check URL for filters
    if(request()->has('completedBy'))
    {
        $history = $history->where(['completedBy' => request('completedBy'), 'user_id' => $user_id]);
    }

    if(request()->has('sort'))
    {
        if(request('sort') == "amount")
        {
            $history = $history->orderByDesc('amount');
        }
        if(request('sort') == "task")
        {
            $history = $history->orderBy('task');
        }
    }

    if(request()->has('receipt'))
    {
        if(request('receipt') == "yes")
        {
            $history = $history->where('receipt', '!=', "");
        }
    }

    //Paginate Results
    $history = $history->paginate(5)->appends([
        'completedBy' => request('completedBy'),
        'sort' => request('sort'),
        'receipt' => request('receipt')
    ]);

    //Get data without pagination stuff
    $collection = $history->getCollection();
    dd($history->getCollection());
    return view('dashPages.serviceHistory', compact('history', 'collection'));
}

1 个答案:

答案 0 :(得分:0)

尝试使用<a href="{{route('viewPDF', serialize($collection))}}" target="_blank">View as PDF</a>代替<a href="{{route('viewPDF',($collection))}}" target="_blank">View as PDF</a>

希望得到这个帮助。