php - Laravel 8:调用数组上的成员函数 user()
问题描述
我正在使用 Laravel 8 开发我的论坛项目,我想为用户在论坛上提出的问题添加一些类似的功能。
所以这里有一个表格question.blade.php
:
<form action="{{ route('questions.likes', $show->id) }}" method="POST">
@csrf
<button class="btn">
<i class="fas fa-thumbs-up"></i> <span>{{ $show->likes->count() }}</span>
</button>
</form>
然后在LikeController
,我添加了这个:
public function store(Question $id, Request $request)
{
$id->likes()->create([
'user_id' => $_REQUEST->user()->id,
]);
return back();
}
但现在我得到这个错误:
Call to a member function user() on array
这是指这一行:
'user_id' => $_REQUEST->user()->id,
那么这里出了什么问题呢?我需要传递按下like 按钮的用户ID 以更新likes
表。我该如何解决这个问题?
如果您与我分享任何想法或建议,我将不胜感激...
提前致谢。
解决方案
代替 'user_id' => $_REQUEST->user()->id;
和 'user_id' => $request->user();
编辑:错误的原因
$_REQUEST
是一个关联数组,默认包含 $_GET、$_POST 和 $_COOKIE 的内容。这属于 PHP 核心,不属于 Laravel。该数组与 laravel 对象没有联系,user()
所以为什么 Call to a member function user() on array
抛出。
$request 是lluminate\Http\Request
此对象的实例,可以访问当前经过身份验证的用户
推荐阅读
- sql - 如何比较不同的数据库表列并在 SQL Server 中添加?
- javascript - 想要使用 jQuery 以垂直方式获取 td 选择框选定值
- r - R - 根据向量中的任何值编写条件语句
- java - 简单程序抛出 ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
- assembly - 使用特定索引分配位的好方法是什么?
- angular - ASP.NET Core MVC + Angular SPA 模板 + Docker 支持:更改 html 内容不会在浏览器上实时刷新
- reactjs - 承诺中的返回值
- android - 未安装 Ionic Firebase 电话身份验证插件
- r - 加入/合并整洁的时间序列数据 r
- ansible - Ansible:如何以正确的格式获取堆栈输出