2016-09-23 5 views
-1

혼란 스럽습니다. 나는 laravel 문서를 T에 따르고 있는데 어떤 것이 제대로 구성되지 않았을까?Laravel 5.3, Eloqent 모델 및 네임 스페이스 문제

짧게 : 문서와 같이 제 Eloquent 모델을 사용할 수 없습니다.

긴이 :

은 내가 Laravel 워드 프로세서에서 다음 단계를 따라 갔다. php artisan make:controller datatest

  • 가 컨트롤러에 index 방법을 추가 :

    namespace App; 
    
    use Illuminate\Database\Eloquent\Model; 
    
    /** 
    * @property integer $service_id 
    * @property string $title 
    * @property string $price 
    * @property string $short_description 
    * @property string $long_description 
    * @property integer $display 
    */ 
    class SavedService extends Model 
    { 
        protected $table = 'saved_services'; 
        public $timestamps = false; 
    
        /** 
        * @var array 
        */ 
        protected $fillable = ['title', 'price', 'short_description', 'long_description', 'display']; 
    } 
    
  • php artisan make:model SavedService이 컨트롤러를 만들어 :

    1. laravel 새 블로그
    2. 추가 된 데이터베이스 세부 사항은
    3. 이 모델을 만들어 .env의합니다 :

      ,
      namespace App\Http\Controllers; 
      
      use Illuminate\Http\Request; 
      use App\Http\Requests; 
      use App\SavedService; 
      
      class datatest extends Controller 
      { 
          public function index() { 
           $flights = App\SavedService::all(); 
      
           foreach ($flights as $flight) { 
            echo $flight->name; 
           } 
          } 
      } 
      

    이제 use App\SavedService;는 PHPStorm으로 강조 표시됩니다 : "SavedServices가 사용되지 않습니다."

    또한 $flights = App\SavedService::all();의 경우 앱이 빨간색으로 강조 표시됩니다. "정의되지 않은 네임 스페이스 App." SavedService가 강조 표시되고 PHPStorm이 "정의되지 않은 클래스 SavedService"라고 알려줍니다.

    내가 PHPStorm이 SavedService 클래스를 생성 할 수있는 경우, 네임 스페이스가 App/Http/Controllers/App

    입니까 ??

    프로젝트 구조는

    app 
    -composer.json 
    -Http\ 
    -SavedService.php 
    --Controllers\ 
    ---dataTest.php 
    

    composer.json 자동로드 :

    "autoload": { 
        "classmap": [ 
         "database" 
        ], 
        "psr-4": { 
         "App\\": "app/" 
        } 
    }, 
    

    편집 :
    죄송합니다, 열차가 역에 도착 돌진했다! 나는 이것에 몇 가지를 더하고 싶었다. 첫째, 프로젝트를 주최하는 방랑 기계를 사용하고 있는데, 이것이 중요한지 확실하지 않습니다. 둘째, 저는 Propel-orm을 사용하고 싶었습니다. 나는 웅변을 전혀 능숙하지 않다. 나는 propel을 네임 스페이스와 관련이있다. propel 생성 모델은 app/Http/Models/Http/Models/ModelName에 있습니다. 나는 이것이 모두 하나의 문제라고 생각하기 시작했습니다.

    나는이 과정에 특별한 것을하지 않을 것이다. 설명서의 단계를 따르십시오.

    또한 Eloquent는 Laravel docs 페이지에서 웅변적인 문서를 호스팅하는 방식으로 작동하지 않는 것 같습니다. 예를 들어, "get()"eloquentModel :: get(). laravel docs는 그것을 get()으로 표시하고 phpstorm은 $ key가 예상된다는 적합성을 던집니다. 웅변적인 문서는 get ($ key)을 확인합니다. 나는 거기에서 무엇을 놓치고 있습니까? 차이점은 무엇이며 왜 설명서에 언급되지 않은 것입니까? 어쩌면이게 내 현재의 문제와 관련이 있을까? 아마 내가 propel을 사용할 수없는 이유는 이것에 대한 답이 될 것입니다.

    끝 편집.

    무엇이 누락 되었습니까? 나는 너무 혼란스럽고, 왜 이것이 효과가없는 것일까 요? 도와주세요!!! 감사합니다

  • 답변

    1

    변화

    $flights = App\SavedService::all(); 
    

    "했다"고

    $flights = SavedService::all(); 
    
    +0

    에 다음 문제로 이동 : $ 비행 = SavedService :: 찾기 (1); $ flight-> delete(); 찾기 및 삭제가 강조 표시됩니다. 메소드가 없습니다. – njDeveloper

    +0

    ID가 1 인 savedService가 있습니까? 여기에 마이그레이션에 대한 내용이 표시되지 않습니다. 실행 했습니까/실행 했습니까? –

    +0

    마이그레이션이 필요하지 않습니다. 선택 사항이라고 생각하십니까? 이 경우 ID가 1 인 savedService는 없지만 ID가 6 인 saveService는 없습니다.이 값을 6으로 변경해도 아무 것도 변경되지 않지만 여전히 메소드를 찾을 수 없습니다. – njDeveloper