In allen meinen Ansichten kann ich bereits standardmäßig auf {{Auth::user()->name}}
zugreifen, ich versuche die Möglichkeit hinzuzufügen, in meinen Ansichten auch auf {{Profile::user()->...}}
zuzugreifen, aber ich habe einige Probleme. Ich möchte nicht wirklich View-Composer verwenden, wenn ich nicht als this post suggests haben muss, weil es so aussieht, als müsste ich jede View manuell auflisten. Stattdessen entschied ich mich für die AppServiceProvider boot method, die in der Dokumentation aufgeführt ist. Das Problem ist, dass ich zum Beispiel immer noch nicht {{ Profile::user()->title }}
anrufen kann. Ich bin den folgenden Fehler erhalten:Laravel Zugangsdaten aus allen Ansichten
ErrorException in AppServiceProvider.php line 19:
Non-static method App\Profile::user() should not be called statically, assuming $this from incompatible context
Hier ist meine AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use View;
use App\Profile;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
View::share('user', Profile::user());
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
Hier ist mein Modell profile.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
//
protected $fillable = [
'bio',
'linkedin_url',
'facebook_url',
'twitter_username',
'title',
'profile_image',
'user_id',
];
public function user()
{
return $this->belongsTo('user');
}
}
Was bin ich falsch machen? Wie kann ich in allen Ansichten auf Benutzerprofildaten zugreifen? Kann ich ein Beispiel sehen?
Wollen Sie das Profil des eingeloggten Benutzers? –
Hat das Benutzermodell die Beziehung zu Profil? Sie können dann {{Auth :: user() -> profile-> myAttribute}} verwenden – Mei