php - Laravel 非静态方法 Mavinoo\LaravelBatch\LaravelBatch::update() 不应静态调用
问题描述
在 laravel proyect 我在通知控制器中有这个错误
尝试打开通知时出现错误,通知已发送,但打开通知时必须查看的用户出现错误。
Error: Non-static method Mavinoo\LaravelBatch\LaravelBatch::update() should not be called statically Line: C:\xampp\htdocs\laravel\Unifiedtransform-master\app\Http\Controllers\NotificationController.php:28
在这段代码中:
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index($id)
{
$msg = Notification::with('teacher.department')->where('student_id',$id)->orderBy('id','desc')->paginate(10);
$msgs = [];
foreach($msg as $m){
$msgs[] = [
'id' => $m->id,
'active' => 0,
'updated_at' => date('Y-m-d H:i:s'),
];
}
LaravelBatch::update('notifications',(array) $msgs,'id');
return view('message.all',['messages'=>$msg]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
解决方案
因此,您在已将方法定义为非静态的类上静态调用方法。通常你会得到一个类的实例,然后在这种情况下调用方法,但很可能你正在尝试使用 Facade 而不是这里的底层类。
您想用来Mavinoo\LaravelBatch\LaravelBatchFacade
拨打电话,而不是 Mavinoo\LaravelBatch\LaravelBatch
. config/app.php
您在for中的别名Batch
未指向外观,或者您正在导入未引用该类的类。
use Mavinoo\LaravelBatch\LaraveBatchFacade as LaravelBatch;
或者如果您正确设置了别名:
use LaravelBatch;
请参考您正在使用的版本中此包的文档,以了解如何定义别名。
推荐阅读
- php - 在 Flutterapp 和 PHP 后端之间创建安全连接
- gradle - Gradle kotlin dsl - how to specify duplicate tasks?
- android - 从相机或图库中选择图像
- ios - 约束冲突,因为我无法停用约束
- python - 从python中的城市道路中提取图形并在networkx中使用它
- regex - 正则表达式匹配是/否
- mysql - Error binding mariadb nodejs docker-compose
- node.js - 从 nodeJS 连接到我的 vpc 上的 documnetDB 集群
- tensorflow - 有谁知道如何在 ECS 中为 tensorflow-serving 制作负载均衡器?
- r - 在R中阅读带有包装文本的pdf