2016-06-22 1 views
1

방금 ​​시작하겠습니다. "이 질문이 많이 제기된다는 것을 알고 있습니다." 내가 나를 위해 아무것도 효과가 없다고 말할 때 나를 믿어 라.클래스 App Http Controllers PostController가 존재하지 않습니다.

PostController 컨트롤러를 만들었습니다. 이것은 내 블로그의 컨트롤러입니다. 내 블로그를 탐색 할 때 다음 오류가 나타납니다. Class App\Http\Controllers\PostController does not exist. 컨트롤러는 PostController.php입니다. 경로는 다음과 같습니다 Route::get('blog','[email protected]');. 나는 약간의 composer 명령을 실행하는 것이 도움이 될 것이지만 그것들 중 누구도 나를 도왔다는 것을 읽지 못했습니다. composer dumpautoload뿐만 아니라 composer update. 여기에 어떤 단계가 빠졌습니까? 누구나 유사한 문제가 발생합니까? 추가 정보가 필요한지 알려주십시오.

편집 다음은 맨 위에있는 네임 스페이스입니다.

use App\Http\Controllers; 
use App\Posts; 
use App\User; 
use App\Http\Controllers\Controller; 
use App\Http\Requests\PostFormRequest; 
use Illuminate\Http\Request; 

여기는 전체 컨트롤러입니다.

<?php 
use App\Http\Controllers; 
use App\Posts; 
use App\User; 
use App\Http\Controllers\Controller; 
use App\Http\Requests\PostFormRequest; 
use Illuminate\Http\Request; 



class PostController extends Controller { 

/** 
* Display a listing of the resource. 
* 
* @return Response 
*/ 
    public function index() 
    { 
     //fetch 5 posts from database which are active and latest 
     $posts = Posts::where('active',1)->orderBy('created_at','desc')->paginate(5); 
     //page heading 
     $title = 'Latest Posts'; 
     //return home.blade.php template from resources/views folder 
     return view('blog/home')->withPosts($posts)->withTitle($title); 
    } 


/** 
* Show the form for creating a new resource. 
* 
* @return Response 
*/ 
    public function create(Request $request) 
    { 
     // if user can post i.e. user is admin or author 
     if($request->user()->can_post()) 
     { 
     return view('blog.create'); 
     }  
     else 
     { 
     return redirect('blog'); 
     } 
    } 


/** 
* Store a newly created resource in storage. 
* 
* @return Response 
*/ 
    public function store(PostFormRequest $request) 
    { 
     $post = new Posts(); 
     $post->title = $request->get('title'); 
     $post->body = $request->get('body'); 
     $post->slug = str_slug($post->title); 
     $post->author_id = $request->user()->id; 
     if($request->has('save')) 
     { 
     $post->active = 0; 
     $message = 'Post saved successfully';    
     }    
     else 
     { 
     $post->active = 1; 
     $message = 'Post published successfully'; 
     } 
     $post->save(); 
     return redirect('edit/'.$post->slug)->withMessage($message); 
    } 


/** 
* Display the specified resource. 
* 
* @param int $id 
* @return Response 
*/ 
    public function show($slug) 
    { 
     $post = Posts::where('slug',$slug)->first(); 
     if(!$post) 
     { 
     return redirect('/')->withErrors('requested page not found'); 
     } 
     $comments = $post->comments; 
     return view('posts.show')->withPost($post)->withComments($comments); 
    } 


/** 
* Show the form for editing the specified resource. 
* 
* @param int $id 
* @return Response 
*/ 
    public function edit(Request $request,$slug) 
    { 
     $post = Posts::where('slug',$slug)->first(); 
     if($post && ($request->user()->id == $post->author_id || $request->user()->is_admin())){ 
      return view('posts.edit')->with('post',$post); 
     } 
     return redirect('blog')->withErrors('you have not sufficient permissions'); 
    } 


/** 
* Update the specified resource in storage. 
* 
* @param int $id 
* @return Response 
*/ 
    public function update(Request $request) 
    { 
     // 
     $post_id = $request->input('post_id'); 
     $post = Posts::find($post_id); 
     if($post && ($post->author_id == $request->user()->id || $request->user()->is_admin())) 
     { 
     $title = $request->input('title'); 
     $slug = str_slug($title); 
     $duplicate = Posts::where('slug',$slug)->first(); 
     if($duplicate) 
     { 
      if($duplicate->id != $post_id) 
      { 
      return redirect('edit/'.$post->slug)->withErrors('Title already exists.')->withInput(); 
      } 
      else 
      { 
      $post->slug = $slug; 
      } 
     } 
     $post->title = $title; 
     $post->body = $request->input('body'); 
     if($request->has('save')) 
     { 
      $post->active = 0; 
      $message = 'Post saved successfully'; 
      $landing = 'edit/'.$post->slug; 
     }    
     else { 
      $post->active = 1; 
      $message = 'Post updated successfully'; 
      $landing = $post->slug; 
     } 
     $post->save(); 
      return redirect($landing)->withMessage($message); 
     } 
     else 
     { 
     return redirect('blog')->withErrors('you have not sufficient permissions'); 
     } 
    } 


/** 
* Remove the specified resource from storage. 
* 
* @param int $id 
* @return Response 
*/ 
    public function destroy(Request $request, $id) 
    { 
     // 
     $post = Posts::find($id); 
     if($post && ($post->author_id == $request->user()->id || $request->user()->is_admin())) 
     { 
     $post->delete(); 
     $data['message'] = 'Post deleted Successfully'; 
     } 
     else 
     { 
     $data['errors'] = 'Invalid Operation. You have not sufficient permissions'; 
     } 
     return redirect('blog')->with($data); 
    } 


} 

감사합니다.

+0

어디에서'blog'라고 부르면 우리를 공유 할 수 있습니까? – C2486

+0

컨트롤러 클래스에 네임 스페이스가 있습니까? – miken32

+0

게시물의 네임 스페이스를 참조하십시오. – IE5Master

답변

1

composer dumpautoload이 도움이되지 않는 경우 에 올바른 namespace 선언이 있는지 확인하고 클래스 이름/경로 선언에 오타가 있는지 다시 확인하십시오.

이 자동로드 구성 composer.json을 확인 실패 할 경우는 다음과 같이해야한다 :

"autoload": { 
    "psr-4": { 
     "App\\": "app/" 
    } 
}, 

이 같은 것을 사용할 수 참고 측면으로 :

Route::get('blog',PostController::class . '@index'); 

또는

Route::get('blog',\App\Http\Controllers\PostController::class . '@index'); 

괜찮은 IDE라면 경고가 표시됩니다.

파일 잘 <?php 또는 <?php declare(strict_types = 1); 경우 한 후, 파일의 beggining에서이

namespace App\Http\Controllers; 

같은 라인을 가져야한다 : 파일을 찾을 수 없습니다/

오타 편집있다 당신은 php7 엄격 모드를 사용하고 있습니다

+0

안녕하세요, 나는 약 50 번 내 철자를 확인하고 다시 검사했습니다. 내 composer.json 파일을 확인하고 언급 한 내용이 거기에 있습니다. – IE5Master

+0

당신이 _use_ 네임 스페이스로 질문을 업데이트했지만 PostController.php에'

+0

나는 업데이트 된 게시물에 있습니다. – IE5Master