微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 表单提交无效Livewire + Turbolinks

如何解决Laravel 表单提交无效Livewire + Turbolinks

我的项目需要 livewire 包,但以前没有使用过。一些 livewire 组件在不刷新页面的情况下无法工作,我不明白这是什么原因。

<form wire:submit.prevent="login_method">
    <input type="text" wire:model="login.email" id="email">
    <input type="password" wire:model="login.password" id="password">
    <button type="submit">Login</button>
</form>
class Login extends Component
{
    public $login;

    public function login()
    {
        return dd($this->$login);
    }
    
    public function render()
    {
        return view('livewire.auth.login')->extends('layout.default');
    }
}

注意:我使用 Turbolinks (SPA)。在不刷新浏览器的情况下在页面之间切换。

当我禁用 Turbolinks 时,表单提交有效,但是当 Turbolinks 处于活动状态时,在页面之间切换时会加载 livewire 组件,但操作不起作用。

Laravel 8.12 / Livewire 2.3 / Turbolinks 5.2

解决方法

请将表单标签中的方法名称从 login_method 更改为 login,如下面的代码所示。

df = pd.DataFrame(data={'id': ['9clpa','g659am'],'i2': [('{"t":"unique678","q":[{"qi":"01","answers":[{"answer":"M","value":"1"},{"answer":"F","value":"2"},{"answer":"G","value":"3"},{"answer":"V","value":"4"}]},{"qi":"02",{"answer":"A",{"answer":"B","value":"4"},"value":"5"},{"answer":"NC","value":"6"},{"answer":"O","value":"7"} ]}]}'),('{"t":"unique428","value":"7"} ]}]}')]})
out={}
columns1 = ['id','qi','answers']
for i in range(len(df)):
    out[i] = pd.read_json(df.i2[i])
    out[i] = pd.json_normalize(out[i].q)
    df_new = pd.DataFrame(data=out[i],columns=columns1)
    df_new = df_new.assign(id = lambda x: df.id[i])
    display(df_new)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。