2017-03-16 10 views
2

Laravelに問題があります。またビューのテーブルからの出力値

​​

しかし、私:私は完全に私の見解では、このような値のそれぞれを取得することができます

$usersTable = DB::table('users')->get(); 
return view('users')->with('users', $usersTable); 

foreachループで:私は私のコントローラからこのように私のビューに私のテーブル全体を通過してきました私のforeachループの外でこれらの値にアクセスする必要があります、どうすればいいですか?

echo Form::text('email', "$users->$value->email", array('placeholder' => "Email")); 

が動作していない...

これは、電子メールのみを取得するにはどのよう

[{"id":"1","name":"Administrator","email":"[email protected]","password":"$2y$10$Re3Ahf.SwU5vj4UvtU5Dy.jxaZMsUNC2WhuJMwsNy9gu6TST4PuRG","remember_token":null}] 

この形で私の全体のオブジェクトを提供しますか?私もインデックスを使ってみましたが、それらは機能しませんでした。 ありがとう!

編集: 全状況: 私は彼らの余分な情報(メール、電話、...)を持つユーザーのリストを持っています。それらのユーザーボックスには、現在のメールと電話を与えるモーダルが開くことをクリックすると、「ユーザーを編集する」というボタンがあります。だから私は自分のコントローラーでWHOのmailaddressを返すと言うことができません。なぜなら、ユーザーがクライアント側のボタンをクリックした瞬間を知るだけだからです。 画像:http://imgur.com/a/krDrY (編集ボタンは3つの点で小さな円です)。

+0

電子メールを使用する特定のユーザーレコードがありますか?もしそうなら、私はあなたのコントローラーの中にその特定のものをつかんで、あなたのビューに別の変数で渡して、それをその方法で使用します。 –

+0

@JeffLambert問題は、ユーザーがメールを取得する必要があるユーザーだけを知ることです。ユーザーがボタンをトリガーする瞬間です。 –

+0

電子メールをクライアントサイドアクションで検索する必要がある場合は、そのロジックをサーバー側で行うのではなく、クライアント側に置く方がよいでしょう。ボタンをクリックしたときに参照できるデータ属性を追加して、その電子メールがどのようなものかを把握することができます。 –

答えて

1

を行うには、収集方法を使用する必要がありますすでにデータが読み込まれているので、追加のクエリは作成されません。

あなただけのユーザーをロードしたい場合は、代わりにget()first()を使用します。

$users = User::first(); 

あなたには、いくつかの男が、ここでお勧めのように、あなたはすべてのユーザーデータをロードしますget()、その後[0]またはfirst()を使用します場合はサーバーに過負荷をかける要求ごとにメモリに格納します。

また、データにアクセスするためにインデックスを使用すると($users[4]['email']など)、悪い習慣です。可能な場合は避けてください。

+0

私の投稿を編集しました。上記の理由からテーブル全体を私の視点にインポートしました。 –

0

あなたは、私は、単一のオブジェクトを取得するために->first()の代わり->get()を使用することをお勧め[0]

echo Form::text('email', $users[0]->email, array('placeholder' => "Email")); 

を追加することによって、最初の要素として追加する必要があります。ループを取り除き、必要な場所で使用します。

-2

JSONのように見えます。その属性を取得するにはjson_decode($data)$data->emailを試してください。

$users = User::get(); 
$users->where('name', 'John Smith')->first()->email 

この意志:あなたが最初のユーザーの電子メールを取得するためにusersのコレクションを使用している

+0

それもやってみたが、うまくいかなかったと思った。 ;) –

0

、あなたはループを使用せずにコレクションにアクセスするには

$users->first()->email; 
関連する問題