私はUserテーブルからのようなブレードでデータベースからデータを取得する方法を知られているしたいと思います:Laravelブレードビューでデータベースからレコードを取得
{{ Auth::user()->name }}
私はテーブルuser_settings
を持って、私はレコードを取得したいと思いますこのテーブルから次のようなユーザーIDをログに記録します。
{{ UserSettings::user()->my_field }}
どうすればいいですか?
私はUserテーブルからのようなブレードでデータベースからデータを取得する方法を知られているしたいと思います:Laravelブレードビューでデータベースからレコードを取得
{{ Auth::user()->name }}
私はテーブルuser_settings
を持って、私はレコードを取得したいと思いますこのテーブルから次のようなユーザーIDをログに記録します。
{{ UserSettings::user()->my_field }}
どうすればいいですか?
は、ブレード・ビューデフォルトで
{{ \App\UserSettings::where('user_id',Auth::user()->id)->first()->my_field }}
に、モデルファイルは、アプリケーションフォルダ内にある、これを試してみてください。
データベーステーブルへのこのような直接アクセスはいえ好まれていない、あなたのようなコントローラー関数から変数としてこれを返すことができ、
$field = \App\UserSettings::where('user_id',Auth::user()->id)->first()->my_field;
return view('view_name',comapact('field'));
と
{{$field}}
のようなブレードでの使用のもう一つの良い方法がありますOrkhanによって投稿された別の答えでは雄弁な関係を使用しています。 ご理解いただきたいと思います。
あなたは、認証されたユーザーに関連付けられてUserSettings
取得する必要があります:あなたはあなたのためにそれを返すためにcurrent()
をという名前のメソッドを定義したことができ
UserSettings::where('user_id', Auth::id())->first()->my_field
を。
class UserSettings extends Model
{
public static function current()
{
return UserSettings::where('user_id', Auth::id())->first()
}
}
は、次に使用:
class User extends Model
{
public function settings()
{
return $this->hasOne('App\UserSettings');
}
}
が続いて使用します:
Auth::user()->settings->my_field
試し{{他に
を、それがより良いユーザーモデルにone-to-one relationshipを使用するようになりましたUserSettings :: user() - > my_field - > get()}} –
return vie w( "あなたのビュー"、["userSettings" => UserSettings :: user()]);今あなたのビューで$ userSettigsが利用可能です – jgetner
ビューレイヤーからデータベース呼び出しを作成せず、コントローラからデータを渡します。 – Steve