You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel控制器运行提示syntax error, unexpected 'all'语法错误

Laravel控制器报syntax error, unexpected 'all'错误的原因与修复方案

错误产生原因

  • 核心问题是PHP语法使用错误:all()是Eloquent模型内置的静态查询方法,调用静态方法不需要使用new关键字实例化对象。new关键字的作用是实例化指定类的对象,后接类名即可,你写的new shop::all()让PHP解析器无法识别语法结构,new和静态调用符::直接拼接属于非法语法,因此抛出unexpected 'all'的语法错误。
  • 额外不规范点:Laravel模型遵循PSR命名规范,要求类名采用大驼峰格式,当前shop的类名、文件名写法不规范,极端场景下可能触发类自动加载失败问题。

修复方案

直接移除调用all()方法前多余的new关键字即可,修正后的完整控制器代码如下:

<?php

namespace App\Http\Controllers\administrator;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
// 建议同步将模型文件、类名调整为大驼峰格式的Shop
use App\Models\Shop;

class DashboardController extends Controller
{
    public function __construct() {
        $this->middleware('auth');
    }

    public function index() {
        // 移除new,直接通过类名静态调用all()方法
        $sh = Shop::all();
        return view('admin.dashboard', compact('sh'));
    }
}
  • 可选规范优化:找到app/Models目录下的shop.php文件,将文件重命名为Shop.php,同时打开文件将内部的模型类名从shop改为Shop,和引入的命名空间保持一致,符合框架默认约定。

内容的提问来源于stack exchange,提问作者Bekr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 04:42:35