Modul Belajar Laravel Part 4
Modul Belajar Laravel Part 4
1. Buka dashboard.php
Pada dashboard.blade.php ubah kode program
Menjadi
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Postingan</title>
</head>
<body>
@if($post->comments->isNotEmpty())
<h3>Komentar: <b> {{ isset($post->comments) ? $post->comments->count() : 0 }}
</b></h3>
@else
<p>Tidak ada komentar</p>
@endif
3. Buka PostController
Ubah kode program pada PostController seperti berikut
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Post;
use App\Models\Comment;
$image = $request->file('image');
$imageName = time() . '.' . $image->extension();
$image->move(public_path('images'), $imageName);
Post::create([
'image' => $imageName,
'caption' => $request->caption,
]);
Comment::create([
'post_id' => $request->post_id,
'user_id' => auth()->id(),
'content' => $request->content,
]);
4. Buka web.php kemudian tambahkan kode program berikut pada bagian paling akhir
Pastikan kode program web.php diatas hanya satu baris dan pastikan karakter ->
nyambung.
5. Buka model/Like
ubah kode program pada model/Like seperti berikut.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
/**
* Mendapatkan pengguna (user) yang melakukan like.
*/
public function user()
{
return $this->belongsTo(User::class);
}
/**
* Mendapatkan entitas yang dilakukan like (misalnya, post).
*/
public function likeable()
{
return $this->morphTo();
}
}
6. Buka model/post
Definisikan likedBy pada model post. Ubah model/Post seperti berikut
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
protected $fillable = [
'image',
'caption',
];
protected $with = ['likes'];
public function likes()
{
return $this->belongsToMany(User::class, 'likes', 'post_id', 'user_id');
}
Uji programnya