2017-04-24 24 views
0

LaravelでCustomer::all();を実行すると、"cs_id" => "d0402be5-e1ba-4cb2-a80c-5340b406e2c3"の配列が得られるので、私はUUIDを自動生成するPostgresのテーブルを持っています。 cs_idだけのデータを1つのレコードにループまたは選択すると、現在誤ったデータであるテーブル上の3つのレコードに対して0,2,5が返されます。PostgresのUUIDをLaravelで選択する

EDIT:laravelオン

CREATE TABLE customers 
(
    cs_id character varying(255) NOT NULL DEFAULT gen_random_uuid(), 
CONSTRAINT cs_customers_pkey PRIMARY KEY (cs_id), 
} 

$customerData = Customer::where('cs_id','d0402be5-e1ba-4cb2-a80c-5340b406e2c3')->first(); 

dd($customerData['cs_id']); 
+0

コードを入力してください –

答えて

2

を持っている上に仮定しています。

だけゲッターを追加し、cs_idを必要なときに、次のようにモデルを定義し、データベースでのUUID自動生成を使用するには

public function getGuid() 
{ 
    return $this->attributes['cs_id']; 
} 
0

使用Customer::findOrFail('d0402be5-e1ba-4cb2-a80c-5340b406e2c3');

そのPKに合致するレコードを取得します。

私はあなたが雄弁が台無しにいくつかの理由についてuse App\Customer;

0

それを使用します。

class Customer extends Model 
{ 
    // rename the id column (optional) 
    protected $primaryKey = 'cs_id'; 

    // tell Eloquent that your id is not an integer 
    protected $keyType = 'string'; 

    // do NOT set $incrementing to false 
} 

次にあなたが使用することができますすべてのEloquentのメソッドは従来のIDと同じように:

$customerData = Customer::findOrFail('d0402be5-e1ba-4cb2-a80c-5340b406e2c3');