微信扫码登录

微信扫码登录

邮箱恶意注册过多,目前只支持微信模式
当前播放: 全新模式,使用 Livewire 改造用户注册部分
站长没有给我打标签

评论区

Chuan Zhe Lin 2021.12.25 19:03

站长好,为什麽我wire:model的时后

dd($this->name,$this->email,$this->password);

没反应

validate 可以正常运作,但submit的时候资料都输出到了导览列?

Codinget 2021.12.25 19:06

哈哈,你让我咋帮你定位问题?????我完全没办法啊

Chuan Zhe Lin 2021.12.25 20:41

不好意思麻烦站长,我发现 user-register.blade.php 并没有匹配到UserRegister.php但是视图是正常显示的,用户註册

显示是显示Livewire的组件,但功能好像是预设larave的login功能,顺便请教一下站长在评论区要发程式码区块要怎麽打?麻烦一下站长了!

<div class="card">
    <div class="card-header">用户註册</div>
    <div class="card-body">
        <form wire:submit.prevent="register">
        </form>
    </div>
</div>
namespace App\Http\Livewire;
use App\Models\User;
use Livewire\Component;

class UserRegister extends Component
{
    public $name, $email, $password, $password_confirmation;

    public function render()
    {
        return view('livewire.user-register');
    }

    public function register()
    {
        dd($this->name,$this->email,$this->password,$this->password_confirmation);
        $this->validate([
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6|confirmed',
            'password_confirmation' => 'required|same:password'
        ]);
        $user = User::created([
            'name' => $this->name,
            'email' => $this->email,
            'password' => bcrypt($this->password)
        ]);
        auth()->login($user, true);
    }
}
Codinget 2021.12.25 23:46

你的form表单里为什么是空的,里面应该包含一个submit类型的Button,或者你取消form直接定义button,为Button绑定livewire的click事件,把register逻辑绑定给它。livewire你可以还不太熟悉,你可以看一看网站里那套专门的课程。

https://www.coding10.com/course/laravel-livewire

使用Markdown的方式提交代码就好,挺简单的。

Hello
Chuan Zhe Lin 2021.12.29 19:27

站长我原来这裡是遇到Livewire is not defined的问题,之前空着是省略怕版面太长

下了这个指令,好像解决了?

php artisan livewire:publish --assets

可是我在提交的时候 出现错误

Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, null given, called in /Users/lincz/Desktop/Jugze/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php on line 336

看了代码 vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php:474

public function login(AuthenticatableContract $user, $remember = false)
    {...
}

看了User model 是继承class User extends \TCG\Voyager\Models\User,这问题是出在哪裡?

Codinget 2021.12.29 20:47

把你的项目发到我邮箱吧,codinget@163.com,我把孩子哄睡了再帮你看看。

Chuan Zhe Lin 2021.12.29 21:00

谢谢站长,再麻烦您指点。

Codinget 2021.12.29 20:50

你的创建逻辑用create,你咋用的created

Chuan Zhe Lin 2021.12.29 22:08

我很抱歉,我真的很抱歉😰

Codinget 2021.12.29 22:31

学技术是个细致活儿,需要自己静下来,别太毛燥了,其实你看错误输出信息就可以知道用户并没有创建成功,就已经可以定位到哪里有问题了,大部分问题都可以从错误输出那里直接定位到逻辑误点,不用太着急,学会充分利用输出的信息

wcrows 2021.12.29 22:41

谢谢站长指教,我个性就太毛躁了,真的需要改改。

Codinget 2021.12.29 22:44

这是技术人的大忌,不然干这行越久就会越觉得是一种折磨,一定要调整好遇到问题时的心态和策略。