質問編集履歴

3 form追記

YYama

YYama score 33

2017/07/13 18:47  投稿

【laravel】変数にddをかけたところ、Undefined indexがエラー表示されます。
###前提・実現したいこと
検索ができないバグを探していたところ、インデックスが定義されていないと表示されおそらくこれがバグの原因と思われます。
ただ、このインデックスの未定義の問題を解消する方法が見つかっておりません。
ご教授いただけますでしょうか。
よろしくお願いいたします。
###発生している問題・エラーメッセージ
```
ErrorException in SearchController.php line 59:
Undefined index: search
```
###該当のソースコード
```PHP
public static function searchCommon($where = null, $sortFunc = null)
   {
       $input = request()->all();
       $validator = \Validator::make($input, [
           'q' => 'string|max:255',
           'page' => 'integer|not_in:0,1',
           'search' => 'integer'
       ]);
       if ($validator->fails()) return app()->abort(404);
       $page  = isset($input['page']) ? (int)$input['page'] : 1;
       $search = isset($input['search']) ? (int)$input['search'] : 0;dd($input['search']);
if ($search) {
           $data = Search::select('result', 'query')->where('id', $search)->first();
           $ids = $data ? $data['result'] : [];
           $q  = isset($data['query']['q']) ? $data['query']['q'] : '';
       } else {
           $q = isset($input['q']) ? $input['q'] : '';
           $query = Fulltext::where('type', '<>', 'job');
           if ($q !== '') $query->whereIndex($q);
           if (!is_null($where)) $query->where($where);
           $ids = NULL;
           if ($sortFunc) {
               $query = $query->select('id', 'type', 'main_id')->get()->toArray();
               usort($query, $sortFunc);
               $ids = array_pluck($query, 'id');
           } else {
               $ids = array_map('intval', $query->orderBy('time','DESC')->lists('id')->toArray());
           }
           // $search {{{
           $search = new Search();
           $search['result'] = $ids;
           $search['query'] = ['q' => $q];
           $search->save();
           $search = $search['id'];
           // }}}
       }
}
```
```view
<form class="clearfix m-t-50" method="GET" action="{{url('search')}}">  
<div class="input-group input-group-lg col-sm-offset-2 col-sm-8 p-a-0">  
<input type="text" name="q" class="form-control submit13" placeholder="検索語句を入力してください" title="検索語句" value="{{$q or ''}}">
<span class="input-group-btn">
<button class="btn btn-success" type="submit">検索</button>
</span>  
</div>  
</form>  
```
###補足情報(言語/FW/ツール等のバージョンなど)
他に必要な情報等ありましたら、ご連絡いただけますでしょうか?
何卒よろしくお願いいたします。
  • Laravel

    5216 questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

  • Laravel 5

    3327 questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

2 コード追加

YYama

YYama score 33

2017/07/13 18:22  投稿

【laravel】変数にddをかけたところ、Undefined indexがエラー表示されます。
###前提・実現したいこと
検索ができないバグを探していたところ、インデックスが定義されていないと表示されおそらくこれがバグの原因と思われます。
ただ、このインデックスの未定義の問題を解消する方法が見つかっておりません。
ご教授いただけますでしょうか。
よろしくお願いいたします。
###発生している問題・エラーメッセージ
```
ErrorException in SearchController.php line 59:
Undefined index: search
```
###該当のソースコード
```PHP
public static function searchCommon($where = null, $sortFunc = null)
   {
       $input = request()->all();
       $validator = \Validator::make($input, [
           'q' => 'string|max:255',
           'page' => 'integer|not_in:0,1',
           'search' => 'integer'
       ]);
       if ($validator->fails()) return app()->abort(404);
       $page  = isset($input['page']) ? (int)$input['page'] : 1;
       $search = isset($input['search']) ? (int)$input['search'] : 0;dd($input['search']);
if ($search) {  
           $data = Search::select('result', 'query')->where('id', $search)->first();  
           $ids = $data ? $data['result'] : [];  
           $q  = isset($data['query']['q']) ? $data['query']['q'] : '';  
       } else {  
           $q = isset($input['q']) ? $input['q'] : '';  
           $query = Fulltext::where('type', '<>', 'job');  
           if ($q !== '') $query->whereIndex($q);  
           if (!is_null($where)) $query->where($where);  
           $ids = NULL;  
           if ($sortFunc) {  
               $query = $query->select('id', 'type', 'main_id')->get()->toArray();  
               usort($query, $sortFunc);  
               $ids = array_pluck($query, 'id');  
           } else {  
               $ids = array_map('intval', $query->orderBy('time','DESC')->lists('id')->toArray());  
           }  
           // $search {{{  
           $search = new Search();  
           $search['result'] = $ids;  
           $search['query'] = ['q' => $q];  
           $search->save();  
           $search = $search['id'];  
           // }}}  
       }  
}
```
```view
<input type="text" name="q" class="form-control submit13" placeholder="検索語句を入力してください" title="検索語句" value="{{$q or ''}}">
<span class="input-group-btn">
<button class="btn btn-success" type="submit">検索</button>
```
###補足情報(言語/FW/ツール等のバージョンなど)
他に必要な情報等ありましたら、ご連絡いただけますでしょうか?
何卒よろしくお願いいたします。
  • Laravel

    5216 questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

  • Laravel 5

    3327 questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

1 ビューのコードを追加しました。

YYama

YYama score 33

2017/07/13 18:21  投稿

【laravel】変数にddをかけたところ、Undefined indexがエラー表示されます。
###前提・実現したいこと
検索ができないバグを探していたところ、インデックスが定義されていないと表示されおそらくこれがバグの原因と思われます。
ただ、このインデックスの未定義の問題を解消する方法が見つかっておりません。
ご教授いただけますでしょうか。
よろしくお願いいたします。
###発生している問題・エラーメッセージ
```
ErrorException in SearchController.php line 59:
Undefined index: search
```
###該当のソースコード
```PHP
public static function searchCommon($where = null, $sortFunc = null)
   {
       $input = request()->all();
       $validator = \Validator::make($input, [
           'q' => 'string|max:255',
           'page' => 'integer|not_in:0,1',
           'search' => 'integer'
       ]);
       if ($validator->fails()) return app()->abort(404);
       $page  = isset($input['page']) ? (int)$input['page'] : 1;
       $search = isset($input['search']) ? (int)$input['search'] : 0;dd($input['search']);
}
```
```view
<input type="text" name="q" class="form-control submit13" placeholder="検索語句を入力してください" title="検索語句" value="{{$q or ''}}">
<span class="input-group-btn">
<button class="btn btn-success" type="submit">検索</button>
```
###補足情報(言語/FW/ツール等のバージョンなど)
他に必要な情報等ありましたら、ご連絡いただけますでしょうか?
何卒よろしくお願いいたします。
  • Laravel

    5216 questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

  • Laravel 5

    3327 questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る