#laravel #laravel-livewire
Вопрос:
Сегодня я начинаю с Laravel Livewire — очень простых вещей.
Я пытаюсь сделать базовое увеличение «нравится» в сообщении в блоге. Отметки «Нравится» увеличиваются, но компонент не меняется. Мне нужно обновить страницу, чтобы увидеть нового графа.
blog-detail.blade.php:
@extends('layouts.frontend')
@section('content')
<section class="container journal-detail">
<div class="row">
<div class="col-12 featured">
<div class="row">
<div class="offset-sm-2 col-sm-8">
<span class="date d-block">{{ $blog->created_at->toFormattedDateString() }} by {{ $blog->user->name }}</span>
<h2 class="text-center">{{ $blog->title }}</h2>
@livewire('likes', [
'blog_id' => $blog->id,
'likes' => $blog->likes
])
<img src="{{ asset('storage/blogs/' . $blog->featured_image) }}" class="img-fluid featured-img" alt="{{ $blog->title }}">
{!! $blog->description !!}
</div>
</div>
</div>
</div>
</section>
@endsection
livewire/likes.blade.php
<div>
<button wire:click="increment" class=""><i class="fal fa-thumbs-up"></i></button>
{{ $likes }}
</div>
Livewire/Likes.php
<?php
namespace AppHttpLivewire;
use AppModelsBlog;
use LivewireComponent;
class Likes extends Component
{
public $blog_id;
public $likes;
public function render()
{
return view('livewire.likes');
}
public function mount($blog_id, $likes)
{
$this->blog_id = $blog_id;
$this->likes = $likes;
}
public function increment()
{
$blog = Blog::find($this->blog_id);
$blog->likes ;
$blog->save();
return;
}
}
Комментарии:
1. В любой момент ваша
$this->likes
информация обновляется. Вы пробовали$this->likes = $blog->likes;
, когда вы увеличиваете?2. Спасибо, что работает!