首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel找不到我的服务

Laravel找不到我的服务
EN

Stack Overflow用户
提问于 2018-07-25 16:01:00
回答 1查看 474关注 0票数 0

我在我的应用程序中添加了服务文件夹。我在composer.json中添加了应用程序/型号下面的应用程序/服务。

然后我表演了"composer dump-autoload“

这是我的控制器:

LogbookController.php

代码语言:javascript
复制
namespace App

use App\Services;

class LogbookController extends \BaseController {

public function index()
{
    return Response::json($this->retrieveCashLogbook('977'));

}

public function retrieveLogbookHeader($logbook){
    $log_id=$logbook->id;

    $logbook->log_shift=\App\Services\ShiftService::retrieveShift($log_id); 



    return $logbook;


}

public function retrieveCashLogbook($id){
    $logbook=Logbook::find($id);

    $logbook=$this->retrieveLogbookHeader($logbook);    
}

这是我的服务:

ShiftService.php

代码语言:javascript
复制
namespace App\Services;

//use App\Models\Shift;



class ShiftService {
    public static function retrieveShift($request){
        $shift=Shift::where("shift","=",$request)->first();
        return $shift;      
    }


}

无论我是将命名空间App放在Service上,还是注释掉并替换它,这都无关紧要。当我使用Use App\Services或Use\App\Services或Use \App\Services\ShiftService时,它也不起作用,它仍然没有被检测到。

如果我在LogbookController.php上添加了命名空间应用程序或命名空间应用程序\控制器,则不会检测到控制器。我不知道该怎么做。

是配置的问题吗?我是不是遗漏了什么?composer和设置有什么问题吗?我目前使用的是PHP5.4,但我的Laravel也是一个旧版本。

我的composer.json:

代码语言:javascript
复制
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
    "laravel/framework": "4.1.*"
},
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/services",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
},
"scripts": {
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "stable"
}
EN

回答 1

Stack Overflow用户

发布于 2018-07-26 14:27:18

我解决了它,

首先,当我第二天进入composer dump-autoload时,出于某种原因,它工作了。我认为它需要一个硬重置。

然后,我在LogbookController.php的头上添加了以下内容:

代码语言:javascript
复制
use App\Services;
use App\Models;

class LogbookController extends \BaseController {
    ...

}

然后我在TransactionService.php上添加了这个

代码语言:javascript
复制
namespace App\Services;

use App\Models;
use App\Services\TransactionService;


class TransactionService {
    ...
}

基本上,名称空间和use语句很棘手,所以我必须使用它进行测试和重新测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51513742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档