Laravel Auth::user()->id 在 livewire 表单上返回 null
Posted
技术标签:
【中文标题】Laravel Auth::user()->id 在 livewire 表单上返回 null【英文标题】:Laravel Auth::user()->id returns null on livewire form 【发布时间】:2021-11-04 03:39:44 【问题描述】:我尝试将Auth::user()->id
作为我的表单值。它可以显示在标签上,但它返回值 null。
查看:
<option value=" Auth::user()->id " data-keterangan=""> Auth::user()->id </option>
Http/Livewire:
$this->validate([
'customer_code'=>'required|string',
'customer_name'=>'required|string',
'phone_number'=>'required|string'
]);
StokItem::updateOrCreate([
'customer_code'=>$this->customer_code,
'customer_name'=>$this->customer_name,
'phone_number'=>$this->phone_number
]);
型号:
protected $fillable = ['id','customer_code','customer_name','phone_number','produk_code','produk_name','produk_uom','qty','kode_kondisi_barang','jenis_kondisi_barang','remark','url_foto','status'];
【问题讨论】:
如果你在浏览器中检查选项,你能看到那个值还是只是“”? 在检查中显示<option value data-keterangan>1</option>
为什么不在控制器中使用它,为什么要从视图中传递它?
嗯,很奇怪。您可以尝试将结果存储在变量中,然后在需要的地方打印该变量。这也将提高代码的效率。试试这个:在视图中的任何一行,这样做:@php ($user_id = Auth::user()->id)
。然后在你想要的地方打印变量。 $user_id
.
@EricQvarnström 谢谢,我已经尝试过了,但它对我不起作用:')
【参考方案1】:
确保您的用户已通过身份验证
@auth
<option value=" Auth::user()->id " data-keterangan=""> Auth::user()->id </option>
@endauth
【讨论】:
谢谢你,我试过了,但它不适合我:')【参考方案2】:您不能执行auth()->name()
,您需要通过执行auth()->user()
调用经过身份验证的用户,然后获取您在数据库中的列,例如auth()->user()->name
(https://laravel.com/docs/8.x/helpers#method-auth)
在你的Livewire Component
,你应该做这样的事情
public $id = '';
public $name = '';
public $no_hp = '';
public function mount()
$this->id = auth()->id();
$this->name = auth()->user()->name;
$this->no_hp = auth()->user()->no_hp;
【讨论】:
我试过这个,但我得到了错误。你能帮助我吗?我的代码:public $id = ''; public $name = ''; public $no_hp = ''; public function mount() $this->id = auth()->id(); $this->name = auth()->name(); $this->no_hp = auth()->no_hp();
错误:Undefined method 'name'
谢谢你verymush @migsAV,它的工作原理!请注意,不要忘记禁用 public function resetFields()
中的字段,因此当我将其发送到模型时,我的值不会返回 null。
请注意,Livewire 组件永远不应覆盖任何 $id
、$name
或 $data
属性,因为这些属性在 Livewire 内部使用以上是关于Laravel Auth::user()->id 在 livewire 表单上返回 null的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 4 中使用 Auth::User()->user_group->name 打印用户组名称
Laravel Auth::user()->id 在 livewire 表单上返回 null
Laravel API Passport:从数组中获取 1 个参数:Auth::user()->token()