Laravel 5 Middleware

Code46

Erfahrenes Mitglied
Hi Leute,

ich beschäftige mich gerade mit Laravel 5 und verstehe nicht so genau wie ich dieses middleware benutzen soll. Die Logig mit dem middleware habe ich jetzt nicht so richtig begriffen.

Was ich bis jetzt erstellt habe ist folgendes. Ein Anmelde und Login Formular, was mit einer DB verbunden ist. Wenn ich das Anmeldeformular ausfülle, wird es korrekt in der DB abgespeichert jedoch wird es nicht richtig weitergeleitet(soll eigentlich zu Login seite weiterleiten wird ab zur Index page weitergeleitet) und zudem auch wird Benutzername und Logout buttons angezeigt. Login funktioniert einwandfrei und wird auch zur index page weitergeleitet.

Im http/Controllers/Auth/AuthController.php habe ich diesen code hinzugefügt was ich im internet gefunden hatte.
PHP:
    public function redirectPath()
{
    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/';
}

Die Login und Logout button habe ich so gelöst.
HTML:
<!-- begin:navbar -->
    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
      <div class="container">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-top">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/"><img src="{{asset('/img/logo.png')}}"/></a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="navbar-top">
          <ul class="nav navbar-nav navbar-right">
              @if (Auth::user())
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->username }} <span class="caret"></span></a>
                    <ul class="dropdown-menu" role="menu">
                            <li><a href="#">Ad Post</a></li>
                            <li><a href="{{ url('/auth/logout') }}">Logout</a></li>
                        </ul>
                    </li>
              @else 
                <li><a href="/auth/login" class="signin">Login</a></li>
                <li><a href="/auth/register" class="signup">Register</a></li>

              @endif
          </ul>
        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>
    <!-- end:navbar -->

Wenn ihr mir weiter helfen könntet würde ich mich sehr freuen.

Danke
 
Hi

wie wäre es mit
PHP:
 public function redirectPath()
{
    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/login.php';
}

?

Ich selber habe mit Laravel noch nicht gearbeitet, daher nur ein gedanke von mir :D

Gruß
 
Hi,

danke für deine Antwort, aber das habe ich auch son ausprobiert. Jedoch ist hier das Problem, wenn du dich anmeldest oder registriert, wirst du auf die Login Page weitergeleitet. Also wenn du dich registrierst, dann sollst du auf die Login Page weitergeleitet werden und wenn du dich einlogst dann auf die Index Page. So sollte es eigentlich sein
 
Und was ist, wenn du nach einem richtigen Login die function erneut aufrufst? ein Parameter mit übergibst auf welcher seite er weiterleiten soll?

PHP:
public function redirectPath($val)
{
    return property_exists($this, 'redirectTo') ? $this->redirectTo : '$val';
}

$this->redirectPath('/index.php');
?
Wie gesagt ich habe mit Laravel noch nicht gearbeitet daher könnten meine gedanken total falsch sein :D
 
Zuletzt bearbeitet:
Zurück