2016-12-09 1 views
1

私はメンバーモデルSilverStripe:モデルのフィールドの一部を取得する方法

を持っているとします。

メンバー名の配列と電子メールのみを取得したいと思います。どうすればそれを達成できますか?
考えられる解決策:

$members = Member::get(); // it will gives me all members. 

$data = []; 

foreach($members as $member){ 
    $temp['Name'] = $member->Name; 
    $temp['Email'] = $member->Email; 
    $data[] = $temp; 
    unset($temp); 
} 
//got data into $data 

しかし、私は直接のみ名前メールを選択したいが、それはシルバーストライプで可能ですか?

laravel selectモデルが分かります。

答えて

1

を更新しました実際にあなたの質問は誤解だったか、私は何を理解することができdid'tあなたは私がLaravelの解決策を与えたと言いたいと思っていました。しかし、どんな方法でも、以下のコードを試してみてください。

$sqlQuery = new SQLSelect(); 
$sqlQuery->setFrom('your_table_name'); 
$sqlQuery->selectField('Name', 'Email'); 

// Get the raw SQL (optional) and parameters 
$rawSQL = $sqlQuery->sql($parameters); 

// Execute and return a Query object 
$result = $sqlQuery->execute(); 

// Iterate over results 
foreach($result as $row) { 
    echo $row['Name']; 
    echo $row['Email']; 
} 


参考:

使用全リンク

+0

私は(銀のストライプ[警告]でclass_existsでのこの種をしたい)パラメータ1がOK –

+0

与えられた文字列、配列であることを期待し、これを試してみてください –

+0

申し訳ありませんがうまくいません:( –

-1
$members=(array) $members; 

foreach($members as $member){ 
$temp['Name'] = $member['Name']; 
$temp['Email'] = $member['Email']; 
} 

あなたの結果は、アレイ$tempに2つだけのメンバーの名前とメールアドレスを持つ参照:

print_r($temp); 
0

api docsによると、->setQueriedColumns()は、クエリの列を制限するためにトリックを行う必要があります。それはあなたが->toArray()を使用して配列に変換することができDataListコントロールを返します。

$members = Member::get()->setQueriedColumns(['Name', 'Email'])->toArray(); 
+0

すべてのメンバモデル値。 –

関連する問題