7

Auth::user->username基本的に、データベースに単純な「exp」列があり、静的な名前の代わりに引数として渡すことができる関数「showLevel()」を使用したいと考えています。テンプレートのエコーまたはオブジェクトで関数を使用する方法に苦労しています。

public function index()
{
    $users = User::all();

    $level = $this->showLevel('test');

    return view('home')->with('users', $users)->with('showLevel', $level);
}

public function showLevel($username) {

    $level = DB::table('users')->where('username', $username)->pluck('exp');

    if ($level < 500) {
        return 1;
    } else if ($level > 500 && $level < 1000) {
        return 2;
    } else if ($level > 1000 && $level < 1500) {
        return 3;
    } else if ($level > 1500 && $level < 2000) {
        return 4;
    } else if ($level > 2000 && $level < 2500) {
        return 5;
    } else if ($level > 2500) {
        return 'MAX';
    }

}

home.blade.php にオブジェクトを作成してみました。

$level = new HomeController;
$level->showLevel(Auth::user->username);

しかし、それはうまくいかなかったようです。ブレードでオブジェクトを通過できますか? 自分なりに調べてみたのですが、言い方が悪いのかもしれません。私は立ち往生しています!

{{ showLevel(Auth::user->username); }}私は基本的に、関数から返されたレベルをエコーするために、私の home.blade.php のようなことをしたいと思っています。

4

3 に答える 3

8

はい、ブレードにオブジェクトを渡すことができます。これを実現するには、コンパクトな方法を使用します。

return view('home')->with(compact('users'));

ブレードでは、次のようにユーザーにアクセスできます。

@if ($users)
   @foreach($users as $user)
      {{ $user->name }}
   @endforeach
@endif
于 2015-06-27T16:20:27.050 に答える