я хочу получить идентификатор видео, чтобы он мог помочь мне получить комментарии к этому видео на моем сайте, он отображает только видео, но не комментарии - PullRequest
0 голосов
/ 06 января 2020

Самая большая проблема здесь заключается в том, как получить эти комментарии, используя видеоид в моем blade-виде - мой blade-сервер

<div id="videoid">{{$id->id}}</div>
<div id="videotitle">{{$id->title}}</div>
@php($comments = \App\comments::where('video_id','{{$id->id}}')->get() )
<div id="displaycomment">
@foreach($comments as $comment)
<div id="username">
    <div id="con"><h6>{{$comment->id }}</h6></div>
    <div id="con"><h6>{{$comment->user_id }}</h6></div>
    <div id="con">{{$comment->created_at }}</div>
    </div>
    <div id="comment">{{$comment->comment }}</div>
 @endforeach
</div>

Мой контроллер работает хорошо - mycontroller

 public function watch($id)
{
    return view('video/watch', compact('id'));
}

Ответы [ 3 ]

0 голосов
/ 06 января 2020

Кажется, вам не хватает ключевой части использования Eloquent.

Отношения .

// Video model:
public function comments()
{
    return $this->hasMany(Comment::class);
}

// Comment model:
public function video()
{
    return $this->belongsTo(Video::class);
}

// Controller code: (Switched to [Route-model binding][2])
public function watch(Video $video)
{
    return view('video.watch', [
        'video' => $video
    ]);
}

// Update routes for Route-model-binding
Route::get('/watch/{video}', 'VideoController@watch')->name('video.watch');

// View:
<div id="videoid">{{$video->id}}</div>
<div id="videotitle">{{$video->title}}</div>

<div id="displaycomment">
    @foreach ($video->comments as $comment)
    <div id="username">
        <div id="con">
            <h6>{{$comment->id }}</h6>
        </div>
        <div id="con">
            <h6>{{ $comment->user_id }}</h6>
        </div>
        <div id="con">$comment->created_at</div>
    </div>
    <div id="comment">$comment->comment</div>
    @endforeach
</div>

Привязка модели маршрута

0 голосов
/ 06 января 2020

Это твой клинок. Думал, что нет необходимости запрашивать из представления, а скорее из контроллера.

 <div id="videoid">{{ $video->id }}</div>
<div id="videotitle">{{ $video->title }}</div>

<div id="displaycomment">
@foreach($comments as $comment)
<div id="username">
    <div id="con"><h6>{{$comment->id }}</h6></div>
    <div id="con"><h6>{{$comment->user_id }}</h6></div>
    <div id="con">{{$comment->created_at }}</div>
    </div>

    <div id="comment">{{$comment->comment }}</div>
 @endforeach
</div>

Затем с вашего контроллера вы можете получить свои данные и передать их в представление, используя метод Laravel magi c:

 public function watch($video_id)
{
    $video = Video::whereId($video_id)->first();
    $comments = \App\comments::where('video_id',$video_id)->get()
    return view('video/watch',[
'video'=>$video,
'comments'=>$comments
]);
}
0 голосов
/ 06 января 2020

в контроллере

 public function watch($id)
{
    $video = Video::with('comments')->find($id);
    $comments = \App\comments::where('video_id','{{$video->id}}')->get()
    return view('video/watch', compact('video','comments'));
}

в поле зрения

<div id="videoid">{{$video->id}}</div>
<div id="videotitle">{{$video->title}}</div>

<div id="displaycomment">
@foreach($comments as $comment)
<div id="username">
    <div id="con"><h6>{{$comment->id }}</h6></div>
    <div id="con"><h6>{{$comment->user_id }}</h6></div>
    <div id="con">{{$comment->created_at }}</div>
    </div>
    <div id="comment">{{$comment->comment }}</div>
 @endforeach
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...