【问题标题】:Getting input value from a non ajax form in octobercms从 octobercms 中的非 ajax 表单获取输入值
【发布时间】:2019-10-30 13:02:08
【问题描述】:

我正在尝试构建一个简单的搜索功能。下面是我的搜索表单

<form  class=" my-1 col-12 col-lg-8" action="{{ 'site-search' | page }}" method="POST">
  <input name="q" class="form-control form-control-sm shadow rounded" type="search" placeholder="What are you sourcing for?" aria-label="Search">  
  <button style="display: none;" type="submit"> Search</button>
</form>

然后是我的查询

public function onStart(){
    $search = Input::get('q');
    $this['siteSearch'] = Advert::where('title', 'LIKE', '%' . $search . '%')->get();
}

然后显示

{% for siteSearch in search %}
  {{ search.title }}
{% endfor%}

它似乎没有得到输入值,因为如果我尝试类似的东西

dd($this['siteSearch'] = Buy::where('title', 'LIKE', '%' . 'shoes' . '%')->get());

它返回匹配鞋子的结果。这里可能有什么问题?

【问题讨论】:

  • shoes 还是$shoes
  • 对不起。 '鞋'。那只是看看它是否有效
  • Input::all() 当你尝试发布一些搜索词dd(Input::all());时,你能把它转储并分享它的结果吗?

标签: php laravel octobercms


【解决方案1】:

只是一个简单的错误。 这个

{% for search in siteSearch %}
{{ search.title }}
{% endfor%}

而不是这个

{% for siteSearch in search %}
{{ search.title }}
{% endfor%}

【讨论】:

    【解决方案2】:

    您的 onStart 函数缺少应该伴随所有 POST 请求的 Request $request 参数。在控制器的顶部,添加:

    use Illuminate\Http\Request;
    

    然后,将您的函数重新定义为:

    public function onStart(Request $request)
    

    接下来,通过以下方式获取您的搜索参数:

    $search = $request->input('q');
    

    Input::get() 用于访问 PHP $_GET[] 数组,但由于这是一个 POST 请求,因此您需要使用 Request 类正确访问表单输入。

    完整示例:

    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    class ExampleController extends Controller {
      public function onStart(Request $request){
        $search = $request->input('q');
        $this['siteSearch'] = Advert::where('title', 'LIKE', '%' . $search . '%')->get();
      }
    }    
    

    【讨论】:

    • 嗯,您发布了 laravel 答案 :) 可能是他想使用 October-Cms 来做到这一点
    • 哦,你可能是对的。我知道十月是建立在 Laravel 之上的,但它可能不使用Request 方法来提交表单。不过,必须等待他们的一些反馈才能确认。
    猜你喜欢
    • 2019-08-09
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多