Ich habe eine Frage Ich möchte auf einer Seite alle Beiträge anzuzeigenLaravel Tabelle Beziehung DynamoDB
Hier ist meine DynamoDB
Benutzer Tabelle: user_id | E-Mail | Name | Passwort
Beiträge Tabelle: ID | Körper | user_id
user_id für mich zu verknüpfen, so hat ein Benutzer viele Beiträge.
ich einfach nur Auth verwenden :: Benutzer() -> user_id Benutzer-ID und fordern Körper bekommen einen neuen Beitrag Artikel
aber wie zu schaffen die folgenden foreach?
Namen (von den Benutzern): Körper (von Pfosten)
post.php
class Post extends \BaoPham\DynamoDb\DynamoDbModel
{
public function user()
{
return $this->belongsTo('App\User');
}
protected $table = 'posts';
protected $fillable = array('id');
}
User.php
class User extends \BaoPham\DynamoDb\DynamoDbModel implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;
public function posts()
{
return $this->hasMany('App\Post');
}
protected $table = 'users';
protected $fillable = array('email');
protected $primaryKey = 'user_id';
}
PostController.php
class PostController extends Controller
{
public function getDashboard()
{
$posts = Post::all();
return view('dashboard', ['posts' => $posts]);
}
dashboard.blade.php
@foreach($posts as $post)
<p>{{ $post->body }}</p>
by {{ $post->users->name}}
@endforeach
Fehler bei der Last Dashboardseite
zu bekommen Eigenschaft Nicht-Objekt Der Versuch (Ansicht: resources \ Ansichten \ dashboard.blade.php)
aber es funktioniert mit nur $ post-> body Danke!
noch den gleichen Fehler haben. Das ist richtig? "{{$ Post-> users-> first_name}}". Für die ID als Primärschlüssel, sollte ich das Benutzer-Tabellenattribut von user_id zu id ändern? –
Es sollte so sein {{$ post-> user-> first_name}}. es ist Benutzer und nicht Benutzer – Parithiban
es hat einen anderen Fehler nach dem Wechsel zu "Benutzer" --- 'ErrorException in BelongsTo.php Zeile 50: Argument 1, das an Illuminate \ Database \ Eloquent \ Relationen \ BelongsTo :: __ construct() übergeben wurde, muss eine Instanz von Illuminate \ Database \ Eloquent \ Builder sein, Instanz von BaoPham \ DynamoDb \ DynamoDbQueryBuilder angegeben, in MyProject \ vendor aufgerufen \ laravel \ framework \ src \ Illuminate \ Datenbank \ Eloquent \ Model.php in Zeile 806 und definiert (View: MyProject \ resources \ views \ dashboard.blade.php) ' –