RESTful 컨트롤러가있는 API Laravel 5 애플리케이션을 작성하고 있습니다. 나는 컨트롤러에이 방법을 정의 destroy
방법이 있습니다Laravel - 파괴를위한 404 Vagrant에서 GET 실행
public function destroy($id)
{
App::abort(404);
}
순간에 내가 그것을 처리하지 않으려하기 때문이다. 내 자원에 대한 DELETE 방법을 사용하는 경우
public function show($id)
{
die('show method');
}
그래서 출력
show method
404 코드를 얻을 : 이상한 것은 내가 같은 코드를 사용할 때, 나는
404
헤더를 얻을뿐만 아니라 내 공연 방식에서 출력을 얻을 수 있습니다.
나는 내 파괴하는 방법에 넣으면 때문에이 방법을 파괴 시작하고있어 100 % 확신 :
public function destroy($id)
{
die('destroy');
}
내가 200 상태 코드
I'v와 destroy
을 표시 한 것입니다
테스트 그것은 PhpStorm 에서뿐만 아니라이 Firefox addon과 두 경우 모두 결과가 동일합니다.
질문은 - 여기에 무슨 일이 일어나고 데이터가 없거나 빈 데이터가있는 404 코드 만 반환하는 방법입니까?
내가 더이 문제를 조사하고 제가 발견 한
편집 할 수 있습니다. 내 로컬 호스트에 내 응용 프로그램을 실행하는 경우 :
DELETE http://lara404/test/1
그래야 순수한 404 오류가 발생합니다.
동일한 코드를 복사하여 방랑에서 실행했습니다. 나는 URL을 달린다 :
DELETE http://lara404.app/test/1
그리고 지금 나는 abcdef
와 함께 404 코드를 얻고있다.
나는 기본 설치에서 변경할 수있는 유일한 일
은 다음과 같습니다<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App;
class TestController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//
dd('xxx');
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
return "abcdef";
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
App::abort(404);
}
}
3 :
1) TestController에 다음 코드를 넣는 routes.php
$router->resource('test','TestController');
2)의 시작 부분에 추가) Kernel.php
행에 댓글 달기 :
'Illuminate\Foundation\Http\Middleware\VerifyCsrfToken'
나는 Laravel 5를 새로 설치 (특정 커밋을 사용하지 않음)했음을 확인했습니다. 정확히 똑같은 일이 발생합니다. localhost에서 시작된 동일한 코드가 잘 작동하고 Vagrant에서 실행되는 동일한 코드가 표시 방법도
에 있습니다.
나는 당신의 문제를 재현 할 수 있습니다.404 페이지의 HTML을 응답으로받습니다. 이미 새로 설치를 시도 했습니까? – lukasgeiter
@lukasgeiter 신선한 설치에서는 ok를 사용하고 있습니다. (필자는 방금 확인한 바 있습니다.)하지만 지금은'composer.json' 파일에서 커밋 버전을 사용해야합니다 : "laravel/framework": "dev-master # 846c935194a036901ba6b4397c8897fa51e19111 "' –
이 버전을 설치했지만 여전히 문제를 재현 할 수 없습니다. 이 특정 설치로 당신이 뭔가를 엉망으로 만든 것 같아요. 또한 고정 버전을 사용하는 이유는 무엇입니까? – lukasgeiter