命名空间声明语句必须是脚本中的第一条语句

ta

我刚开始使用Laravel开发Web应用程序,但是使用依赖注入时遇到了问题。没有DI,它可以正常工作,但我想重构代码,以使代码不会紧密耦合。

我已经在google中搜索过,建议在名称空间之前可能有一个空格,并在此处搜索相关问题,但是没有一个可以解决我的问题。

AccountController

<?php

namespace TabJut\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Validator;

use View;

use TabJut\Http\Requests;
use TabJut\Http\Controllers\Controller;
use TabJut\Repositories\AccountRepository;

class AccountController extends Controller
{
    /* error culprit, If I remove these the page not error */
    protected $repository;

    public function __construct(AccountRepository $repository)
    {
        $this->repository = $repository;
    }
    /* error culprit */

    public function getLogin()
    {
        return View::make('account.login');
    }

    public function postLogin()
    {
        // Validates inputs.
        $rules = array(
            'username' => 'required', 
            'password' => 'required'
        );
        $validator = Validator::make(Input::all(), $rules);

        // Redirects back to the form if the validator fails.
        if ($validator->fails()) {
            return Redirect::action('AccountController@getLogin')
                ->withErrors($validator)
                ->withInput(Input::except('password'));
        } 

        $username = Input::get('username');
        $password = Input::get('password');
        $user = $repository.Authenticate($username, $password);
        var_dump($user);
    }
}

帐户存储库

<?php

namespace TabJut\Repositories;

use DB;

class AccountRepository
{
    public function Authenticate($username, $password)
    {
        $user = DB::table('users')
                    ->where('is_active', '1')
                    ->where('user_name', $username)
                    ->where('password', $password)
                    ->first();    
        return $user;
    }
}

文件夹树

文件夹树

错误信息

AccountRepository.php第3行中的FatalErrorException:名称空间声明语句必须是脚本中的第一条语句

in AccountRepository.php line 3
at FatalErrorException->__construct() in HandleExceptions.php line 127
at HandleExceptions->fatalExceptionFromError() in HandleExceptions.php line 112
at HandleExceptions->handleShutdown() in HandleExceptions.php line 0
at Composer\Autoload\includeFile() in ClassLoader.php line 301

我是否错过了任何重要的配置,例如服务定位器设置或只是看不见的代码错误?

请帮忙。

ta

它与依赖项注入无关,基于手册上的kuzawinski注释,我使用记事本重新创建了文件,从而解决了该问题。

...并且您仍然收到“命名空间声明语句必须是脚本中的第一个语句”的致命错误,然后您可能使用带字节顺序标记的UTF-8编码(这很好),又称为BOM(不好) 。尝试将文件转换为“没有BOM的UTF-8”,应该没问题。评论

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java中的“构造函数调用必须是构造函数中的第一条语句”问题

调用super()必须是构造函数主体中的第一条语句

调用super必须是构造函数中的第一条语句,但这是

语法错误:构造函数调用必须是构造函数中的第一条语句

SQL:为什么“CREATE VIEW”必须是查询批处理中的第一条语句?

删除表的存储过程:“CREATE/ALTER PROCEDURE”必须是查询批处理中的第一条语句

“ CREATE FUNCTION”必须是查询批处理中的第一条语句。实体框架代码优先

继承的构造函数java:对super()的调用必须是第一条语句

laravel错误:命名空间声明语句必须是第一个语句,或者在脚本中的任何声明调用之后

尽管有多个记录,但jdbc中的语句仅检索第一条记录

为什么字典似乎在函数中的最后一条语句和函数调用后的第一条语句之间发生变化?

嵌套 if else 语句仅适用于第一条语句

ESlint是否有关于函数中第一条语句之前的空白行的规则?

没有第一条语句就循环(从C到Visual Basic)

我的函数在第一条语句后不返回运行

如果try抛出异常,为什么在第一条语句后尝试退出?

从VS Code附加到NodeJS流程会跳过第一条语句

“或”运算符仅返回第一条语句

为什么在while循环中跳过第一条语句?

反应“if”中唯一的第一条消息

重载的构造函数调用其他构造函数,但不作为第一条语句

为什么我不能在for循环的第一条语句中包含2个变量

为什么只有我的第二条if语句给出结果并覆盖我的第一条if语句?

C#循环先循环三遍第一条语句,然后再移至第二条语句

访问Django模板中的第一条消息

子文档中的moogoose第一条记录

删除laravel eloquent中的第一条记录

获取MongoDB中第一条记录的ID

“ do”块中的最后一条语句必须是表达式