2016-08-03 24 views
1

Ich bin neu in Laravel, jetzt bin ich fest auf Video_id auf meiner Posts-Tabelle, wo ich es gleich ID in meiner Videos Tabelle machen sollte. Beiträge table = http://imgur.com/a/al2Bv Videos table = http://imgur.com/a/wCNoe Route: Video-ID angezeigt wird, wenn ich es schreiben:Laravel Wie kann ich meine video_id-Spalte der ID meiner Videotabelle anpassen?

Route::get('/test/{videoID}', function($videoID) { 
$video = Video::where('id', $videoID)->firstOrFail(); 
$posts = Post::all(); 
return View::make('layouts.viewvideo')->with(['video' => $video, 'posts' => $posts]);}); 

Postcontroller:

public function postCreatePost(Request $request) { 

    $post = new Post(); 
    $post->body = $request['body']; 
    $request->user()->posts()->save($post); 
    return redirect()->back(); 

Beitrag Ansicht:

@foreach($video->posts as $post) 
     <article class="post" data-postid="{{ $post->id }}"> 
      <div class="postbody"> 
       <p>{{ $post->body }}</p> 
      </div> 
      <?php 
      $test = preg_replace('/([^\s]{20})(?=[^\s])/', '$1'.'<wbr>', $post->body); 
      ?> 
      <div class="info"> 
       Posted by {{ $post->user->first_name }} on {{ $post->created_at }} 
      </div> 
     </article> 
    @endforeach 

Ich versuchte video_id Spalte zu bearbeiten auf meiner Posts-Tabelle und ändere es gleich ID meines Videos und es hat funktioniert, aber wie kann ich es automatisch zuweisen, sobald ich Post auf einem bestimmten Video erstellen? Vielen Dank.

+0

Sie müssen Fremdschlüssel enthalten von 'Video 'in' Beitragstabelle'. 'video_id' muss ein Fremdschlüssel sein, der auf eine' id' Spalte in 'video' Tabelle verweist – jonju

+0

Ordnen Sie' video' zu 'post' getrennt zu oder sollen Sie' video' beim Speichern der 'post' – jonju

+0

nach -> speichern (), sollte '$ post-> video_id' die letzte eingefügte ID in dieser Tabelle sein (siehe: http://stackoverflow.com/a/21084888/2468160). - Du kannst es auch so machen: 'return redirect (/ video /.$ post-> video_id);' –

Antwort

0

verpasst Sie sollten $ post-> Video tun() -> Associate ($ Video) als auch

+0

Danke, es hat geholfen. – Arthur

1

Sieht aus wie Sie eine Zeile Code in

public function postCreatePost(Request $request) { 
    $post = new Post(); 
    $post->body = $request['body']; 
    $post->video_id = $request['video_id']; // this is what you missed. assuming you have input with name video_id in your view(blade) 
    $request->user()->posts()->save($post); 
    return redirect()->back(); 
} 
+0

Ich habe keine Eingabe mit dem Namen video_id aus meiner Sicht .. Alles was ich tun möchte ist, wenn ich etwas auf meinen Videos poste (ähnlich wie Youtube) Ich möchte diesen Beitrag seinem Video zuordnen, damit ich etwas anderes posten kann (Wenn also die Video-ID, die ich gepostet habe, 11 ist, müssen alle Beiträge dieses Videos die ID 11 haben, wenn die Video-ID 12, alle Beiträge die ID 12 haben (ofc in der Spalte video_id). – Arthur

+0

dann ändern 'video_id' mit was auch immer es in deiner Sicht ist, die die ID des Videos speichert. Wenn es keine gibt, dann ist es nicht möglich, den Beitrag und das Video zu beziehen. etwas muss da sein, um die Video-ID zu behalten – jonju