首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ID从Laravel传递到数据路由

将ID从Laravel传递到数据路由
EN

Stack Overflow用户
提问于 2019-07-03 01:39:22
回答 2查看 1.6K关注 0票数 1

我相信我已经很接近了,但是在如何将给定的ID从我的show方法传递到关联的显示数据中,以便数据可以使用关联的数据来显示该ID时,我感到非常困难。

当我硬编码ID或完全删除where语句时,代码工作。我的目标是使datatable清单相关项仅用于给定的集合。

路线:

代码语言:javascript
复制
Route::resource('collections', 'CollectionsController');
Route::get('collectionsdata/{id}', 'CollectionsController@showdata');

Show.blade.php:

代码语言:javascript
复制
var id = {{ $collection->id }}
        $(function () {...

$('#item-table').DataTable({
                //processing: true,
                serverSide: true,
                ajax: "/collectionsdata/"+ id,
                columns: [
                    //{data: 'id', name: 'id'},
                    {data: 'id', name: 'id'},
                    {data: 'collection_id', name: 'collection_id'},
                    {data: 'type_id', name: 'type_id'},
                    {data: 'collection.title', name: 'collection.title'},
                    {data: 'type.name', name: 'type.name'},
                    {data: 'updated_at', name: 'updated_at'},
                ]
            });

收款主计长:

代码语言:javascript
复制
    public function show(Collection $collection)
    {
        $collection->load('items.type')->get();

        //dd($collection);
        return view ('collections.show', compact('collection'));
    }

    public function showdata()
    {
        $data = Item::with('collection', 'type')->where('collection_id', $id);

        return Datatables::of($data)->make(true);
    }

很好地展示自己的功能,var id在刀片中工作得很好--我想我只是在控制器中缺少了一些东西来接收id,并最终在$data上创建所需的查询,以便返回到datatable。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-03 01:47:55

是。在显示方法中缺少Request $request,以便从路由中检索$id。

代码语言:javascript
复制
use Illuminate\Http\Request;

public function showdata(Request $request)
{
    $collection_id = $request->id;

    $data = Item::with('collection', 'type')->where('collection_id', $id);

    return Datatables::of($data)->make(true);
}

您还可以直接从控制器检索id,而不是使用$request

代码语言:javascript
复制
public function showdata($id)
{
    $data = Item::with('collection', 'type')->where('collection_id', $id);

    return Datatables::of($data)->make(true);
}
票数 1
EN

Stack Overflow用户

发布于 2019-07-03 01:57:20

您只需在显示数据中有一个参数,该参数用于从URL传递的id

代码语言:javascript
复制
public function showdata($id)
{
    $data = Item::with('collection', 'type')->where('collection_id', $id);
    return Datatables::of($data)->make(true);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56861822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档