【问题标题】:How to filter data using routes in laravel如何在 laravel 中使用路由过滤数据
【发布时间】:2018-09-11 09:00:21
【问题描述】:

我是 laravel 的新手。我在数据库中有一个名为“国家”的表。并有三列。那么我如何通过带有路由 url 的过滤器来获取过滤后的数据 示例:将 ?name=spain 添加到端点只会返回 name 列的值设置为 spain 的条目。

【问题讨论】:

    标签: php laravel filter parameters routes


    【解决方案1】:

    你可以这样做:

    Route::get('country/{country}', function($country) {
        $countries = \App\Country::where('name',$country)->get();
        view('yourview', compact('countries');
    });
    

    然后使用网址http://yourdomain.com/country/spain

    【讨论】:

    • 谢谢回复,但这就是我得到的 Builder {#180 ▼ #query: Builder {#179 ▶} #model: Country {#184 ▶} #eagerLoad: [] #localMacros: [ ] #onDelete: null #passthru: array:12 [▶] #scopes: [] #removedScopes: [] }
    • 对不起,是的,我已经用->get() 更新了我的答案,它将返回您可以使用的结果集合,例如。 $countries->toArray();,看你的需求
    • 嘿 CuGreen thnx 现在我得到一个像这样的数组 Collection {#189 ▼ #items: array:1 [▼ 0 => 国家 {#191 ▼ #attributes: array:6 [▼ "id " => 20 "名称" => "西班牙" "iso2" => "ES" "iso3" => "ESP" "created_at" => "2018-03-31 19:16:36" "updated_at" => “2018-03-31 19:16:36”] 如何在视图中显示此属性?
    • 我已经用一个带有视图的示例更新了我的答案。正如我所说,这将取决于您的需求。
    • 瞧! \thnx 很多
    【解决方案2】:

    您需要使用request()->get('name'),因为您有一条带有?name=spain 的路线,女巫是一个查询获取参数。

    在你的情况下,你可以试试这个:

    Route::get('countries', function() {
        $countries = \App\Country::where('name',request()->get('name'))->get();
        dd($countries);
    });
    

    【讨论】:

    • 是的,我试过了,例如localhost:8000/?name=spain它让我回到主页任何想法这里有什么问题
    • 你是如何声明你的路线的?你在/path 中,所以 laravel 会将你重定向到家
    • 是的,我得到了很多 yebor974
    猜你喜欢
    • 2012-11-19
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多