علیرضا کفایتی
3 سال پیش توسط علیرضا کفایتی مطرح شد
3 پاسخ

مشکل در لایووایر

سلام
اول عرض کنم که من از دوره داخل راکت متاسفانه استفاده نمیکنم و از دوره ساده ای استفاده میکنم در زمینه لایووایر که این مبحث داخلش توضیح نداده شده پس ممنون میشم توضیح بدید :

قبلا سایتی طراحی کردم و در این مدت لایووایر را یادگرفتم . حالا دارم پنل مدیریت اون سایت رو با لایووایر پیاده سازی میکنم . در بخش ارسال مطلب مشکلی نداشتم و از modal بوت استرپ استفاده کردم و همه چی انجام شد . در بخش حذف مطلب دکمه ای رو قرار دادم و به آن wire:click دادم و همه چی درست بود .
حالا دارم بخش ویرایش رو پیاده سازی میکنم . باز هم از modal بوت استرپ استفاده میکنم . به input ها value دادم اما value ها اعمال نمیشه !!!
با کمی تحقیق فهمیدم که به خاطر دادن wire:model.defer="نام اینپوت" به input ها است . اما متوجه نشدم برای این عملیات ویرایش باید چه کنم ؟
ممنون میشم راهنمایی کنید !!!
این هم کد ها :
فایل ShowArticle.php :

<?php

namespace App\Http\Livewire;
use App\Models\Article;
use Livewire\Component;

class ShowArticle extends Component
{
    public $Article;
    public $title,$body,$img,$tags;
    protected $listeners= [
        'article_create',
    ];
    public function mount()
    {
        $this->fill([
            'Article' => Article::orderby('id','desc')->get()
        ]);
    }
    public function article_create(){
        $this->fill([
            'Article' => Article::orderby('id','desc')->get()
        ]);
    }
    public function create(){
        Article::create([
            'title' => $this->title,
            'body' => $this->body,
            'tags' => $this->tags,
            'img' => $this->img,
        ]);
        $this->reset('title','body','img','tags');
        $this->emit('article_create');
    }
    public function delete(Article $article){
        $article->delete();
        $this->emit('article_create');
    }
    public function render()
    {
        return view('livewire.show-article');
    }
}

فایل show-article.blade.php :

<div>
    <button class="btn btn-primary" style="margin-right: 20px;margin-bottom: 20px;font-size: 20px;" type="button"  data-bs-toggle="modal" data-bs-target="#exampleModal">ارسال نوشته</button>
    <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <h5 class="modal-title" id="exampleModalLabel">اطلاعیه جدید</h5>
              <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <span>نام نوشته</span><input wire:model.defer="title" type="text" name="title" class="form-control">
                <br>
                <span>آدرس تصویر نوشته</span><br><input wire:model.defer="img" type="text" name="img" class="form-control" style="display: inline-block;">
                <br>
                <br>
                <span>متن نوشته</span>
                <br>
                <textarea wire:model.defer="body" id="editor" name="body" class="form-control"></textarea>
                <br>
                <br>
                <span>پرچسب ها</span><input wire:model.defer="tags" type="text" name="tags" class="form-control">
                <br>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-danger" data-bs-dismiss="modal">انصراف</button>
              <button wire:click="create()" type="button" class="btn btn-primary" data-bs-dismiss="modal">ذخیره</button>
            </div>
          </div>
        </div>
      </div>
    <table class="table table-light" style="width: 100%;text-algin: center;">
        <tbody>
            <tr>
                <td>نام</td>
                <td>زمان ثبت</td>
                <td>عملیات ها</td>
            </tr>
        </tbody>
        @foreach ($Article as $article)
        <tr>
            <th scope="col">{{$article->title}}</th>
            <th scope="col">{{$article->created_at}}</th>
            <th scope="col">
                <button class="btn btn-primary"  type="button"  data-bs-toggle="modal" data-bs-target="#edit{{$article->id}}Modal">ویرایش</button>
                <div class="modal fade" id="edit{{$article->id}}Modal" tabindex="-1" aria-labelledby="edit{{$article->id}}ModalLabel" aria-hidden="true">
                    <div class="modal-dialog">
                      <div class="modal-content">
                        <div class="modal-header">
                          <h5 class="modal-title" id="editModalLabel">ویرایش {{$article->title}}</h5>
                          <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                        </div>
                            <span>نام نوشته</span><input wire:model.defer="title" type="text" name="title" class="form-control" value="{{$article->title}}">
                            <br>
                            <span>آدرس تصویر نوشته</span><br><input wire:model.defer="img" type="text" name="img" class="form-control" style="display: inline-block;" value="{{$article->img}}">
                            <br>
                            <br>
                            <span>متن نوشته</span>
                            <br>
                            <textarea wire:model.defer="body" id="editor" name="body" class="form-control">{{$article->body}}</textarea>
                            <br>
                            <br>
                            <span>پرچسب ها</span><input wire:model.defer="tags" type="text" name="tags" class="form-control">
                            <br>
                        </div>
                        <div class="modal-footer">
                          <button type="button" class="btn btn-danger" data-bs-dismiss="modal">انصراف</button>
                          <button wire:click="create()" type="button" class="btn btn-primary" data-bs-dismiss="modal">ذخیره</button>
                      </div>
                    </div>
                  </div>
                <button wire:click="delete({{$article->id}})" type="submit" class="btn btn-danger">حذف</button>
            </th>
        </tr>
        @endforeach
    </table>
</div>

باز هم تکرار میکنم . value ها در قسمت ویرایش مطالب اعمال نمیشوند ؟ چی کنم ؟


ثبت پرسش جدید
امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
2

سلام اصلا نیاز به value نیست شما وقتی اتریبیوت لایووایر رو به تگ های اینپوت میدین مقدار اون هارو در یک متغیر پابلیک میریزین ایندفعه شما باید مقداری رو که میخاید ویرایش کنید در کنترلر لایووایر به اون متغیر پابلیک پاس بدین و بعد نمایش داده میشه و تمام


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
2

سلام اصلا نیاز به value نیست شما وقتی اتریبیوت لایووایر رو به تگ های اینپوت میدین مقدار اون هارو در یک متغیر پابلیک میریزین ایندفعه شما باید مقداری رو که میخاید ویرایش کنید در کنترلر لایووایر به اون متغیر پابلیک پاس بدین و بعد نمایش داده میشه و تمام


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
1

@ajdar9667
یعنی به نوعی ابتدا بعد از کلیک روی دکمه ویرایش یک متد اجرا بشه که این مقدار ها رو برابر کنه با مقدار های مورد نظر و بعد ... ؟؟؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام