laravelで、検索フォームで検索をしようとしても検索が全くできません。
(具体的には、検索結果が引っかかりません。)
その原因が、入力された文字が文字化けを起こしているというところまでは判明しております。
mysqlの文字コードが「UTF8」なので、入力された文字もそれにあわせれば検索ができるようになるというところまではわかっているのですが、どこにどのように記載すればよいかご教授いただけますでしょうか。
現状の設定は、
【php.ini】↓
mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none;
としており、laravelの各viewファイルは特に文字コードの設定をしておりません。
よろしくお願いいたします。
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 = new Search(); $search['result'] = $ids; $search['query'] = ['q' => $q];dd($search); $search->save(); $search = $search['id']; } }
下の方にある「$search['query'] = ['q' => $q];」にてdd($search);をかけたところ
下記のような表示がなされます。
Search {#304 ▼ #table: "searches" #casts: array:3 [▶] #connection: null #primaryKey: "id" #perPage: 15 +incrementing: true +timestamps: true #attributes: array:2 [▼ "result" => "[]" "query" => "{"q":"\u91d1\u5c71"}" ] #original: [] #relations: [] #hidden: [] #visible: [] #appends: [] #fillable: [] #guarded: array:1 [▶] #dates: [] #dateFormat: null #touches: [] #observables: [] #with: [] #morphClass: null +exists: false +wasRecentlyCreated: false }
上記は「会計」で検索しようとして表示された文字化けとなります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/14 08:20
2017/07/14 08:48
退会済みユーザー
2017/07/14 09:05
2017/07/14 09:11
退会済みユーザー
2017/07/14 09:18
退会済みユーザー
2017/07/14 09:30
2017/07/14 09:55