Laravel-Livewire笔记系列(六)-Livewire 发布留言-2

作者: 温新

分类: 【Laravel】

阅读: 1486

时间: 2021-11-08 16:18:23

作者:温新

时间:2021-08-14

hi,我是温新,一名PHPer

1)本系列笔记使用Laravel8.x作为演示;

2)使用Livewire2.x版本

本篇案例是发布留言。发布留言之前,请确保数据表中有用户数据,且有用户登录系统。

第一步:创建留言发布组件

php artisan livewire:make LeaveMsgCreate

第二步:模板组件中使用发布留言组件

// resources/views/livewire/leave-msg-index.blade.php
<div>
    <livewire:leave-msg-create />

    <ul>
        @foreach($leaveMsgs as $v)
            <li>{{$v->user->name}}--{{ $v->content }}</li>
        @endforeach
    </ul>
</div>

第三步:修改留言发布组件

// resources/views/livewire/leave-msg-create.blade.php
<div>
    <!-- wire:submit.prevent提交地址 -->
    <form wire:submit.prevent="createLeaveMsg">
        <div class="form-group">
            <label for="content">留言</label>
            <!-- 数据双向绑定 -->
            <textarea wire:model.lazy="content" id="content" rows="3"></textarea>
        </div>
        <!-- 点击发布后提交到createLeaveMsg方法 -->
        <button type="submit" class="btn btn-sm btn-primary">发布留言</button>
    </form>
</div>

第四步:添加组件控制器方法

// app/Htpp/Livewire/LeaveMsgCreate.php
<?php

namespace App\Http\Livewire;

use Livewire\Component;

class LeaveMsgCreate extends Component
{
    public $content;

    public function render()
    {
        return view('livewire.leave-msg-create');
    }

    // 发布留言
    public function createLeaveMsg()
    {
        // 用户必须登录才能发布留言
       if (auth()->check()) {
           auth()->user()->leageMsg()->create([
               'content' => $this->content
           ]);
       }
       // 留言发布成功后清空表单信息
       $this->content = '';
    }
}

第五步:访问路由并发布留言

必须要登录哦~~

我是温新

每天进步一点点,就一点

请登录后再评论