2017-03-17 109 views
0

入力されたデータがデータベースに既に存在するかどうかを確認します。 私はそれをテストするためにすでに存在する(しかし大文字と小文字が異なる)データを入力しようとしていました。 は、ここに私のクエリLaravel Eloquentは大文字と小文字を区別します

 $existing = AmenityType::all() 
     ->where('type', $req->type) 
     ->first(); 

ですが、それは私がこの

->where('lower(type)', strtolower($req->type)) 

データベースの照合順序が

'utf8mb4_unicode_ci'ありがとうされていた場合でも、何も返しません。

+0

0経験をしていますが、 ''( 'タイプ') '下で' '下(タイプ)' を交換してみてください:

はこのようにそれを試してみてください。 – Feathercrown

答えて

1

all()を呼び出すと既にコレクションが返されているので、where句はデータベースではなくコレクションで行われます。この言語に

$binds = array(strtolower($req->type)); 

$existing = AmenityType::whereRaw('lower(type) = ?'), $binds)->first(); 

var_dump($existing); 
+0

まだ動作しません... –

+0

今すぐ確認してください... –

+0

ありがとうございますが、「方法は存在しません。 –

関連する問題