У меня есть файл route.php:
Route::group(array('prefix' => 'api'), function () { Route::resource( 'login', 'TokenController', ['only' => ['index', 'create', 'store', 'destroy']] ); });
Вот php artisen routes
:
+--------+---------------------------+-------------------+-------------------------+----------------+---------------+ | Domain | URI | Name | Action | Before Filters | After Filters | +--------+---------------------------+-------------------+-------------------------+----------------+---------------+ | | GET|HEAD / | | Closure | | | | | GET|HEAD api/login | api.login.index | TokenController@index | | | | | GET|HEAD api/login/create | api.login.create | TokenController@create | | | | | POST api/login | api.login.store | TokenController@store | | | | | DELETE api/login/{login} | api.login.destroy | TokenController@destroy | | | +--------+---------------------------+-------------------+-------------------------+----------------+---------------+
Какой путь мне нужен, чтобы получить ответ TokenController?
Я пробовал это:
`http://localhost/bets/api/login/create?email=vlio20%40gmail.com&password=vlad1q`
давая Error 404
.
Я тоже пробовал это:
http://localhost/bets/api/login/create?email=vlio20%40gmail.com&password=vlad1q
показывая пустую страницу (код ответа – мой index.php (это пустая html-страница).
примечание 1
Я использую xampp в качестве своего веб-сервера, а ставки – это содержащая папка.
заметка 2
Я настроил view.php для просмотра представлений в общей папке:
'paths' => array(__DIR__.'/../../public')
заметка 3
Использование curl:
curl -i -H "Accept: application/json" -H "Content-Type: applicatio n/json" -X GET http://localhost/bets/public/index.php/api/login/create?email=vli o20@gmail.com&password=vlad1q
Возврат:
HTTP/1.1 200 OK Date: Fri, 06 Jun 2014 08:56:58 GMT Server: Apache/2.4.7 (Win32) OpenSSL/0.9.8y PHP/5.4.22 X-Powered-By: PHP/5.4.22 Content-Length: 723 Content-Type: text/html <!DOCTYPE html> <html> <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css"> <script src="bower_components/jquery/dist/jquery.min.js"></script> <script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular-route/angular-route.min.js"></script> <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script> <script src="js/controllers/loginController.js"></script> <script src="js/services/loginService.js"></script> <script src="js/controllers/AppController.js"></script> <head> <title>Bets Application</title> </head> <body ng-app="betsApp" ng-controller="appCtrl"> <div class="container"> <div ng-view></div> </div> </body> </html>'password' is not recognized as an internal or external command, operable program or batch file.
Фактически ответ является результатом команды php artisen routes
:
http://localhost/bets/api/login
с методом запроса GET
(из адресной строки вашего браузера или щелкнув ссылку), то это приведет к методу index
. http://localhost/bets/api/login/create
с помощью метода запроса GET
(из адресной строки браузера или щелкнув ссылку), тогда он ударит по методу create
. Если вы сделаете запрос, используя http://localhost/bets/api/login
с методом запроса POST
(используя form
где action='http://localhost/bets/api/login'
), то это приведет к методу store
.
Если вы делаете запрос, используя http://localhost/bets/api/login/id
с методом запроса POST
(используя form
где action='http://localhost/bets/api/login/1'
), тогда это будет delete
метод delete
. 1
может быть любым id
таким как 1
или 20
и так, но также вам нужно добавить скрытый ввод для метода DELETE
например:
Чтобы сгенерировать форму, вы должны использовать что-то вроде:
Form::open(array('route' => array('api.login.destroy', 1), 'method' => 'delete'))
Обратите внимание на 1
который должен быть id
модели, которую вы хотите удалить, и в основном это может быть что-то вроде $modelInstance->id
потому что вы, вероятно, передадите модель с вашего контроллера в представление, в котором вы будете генерировать эту форму. Узнайте больше о документации Laravel
.
После долгих исследований я начал с нуля! Теперь я поместил свой основной файл php (app.php) в каталог app / view и все файлы js, css etc в публичный каталог. Также я изменил путь просмотра laravel к пути по умолчанию (app / views) и к файлу app / route.php:
<?php Route::get('/', function() { return View::make('app'); }); Route::group(array('prefix' => 'api'), function() { Route::resource('login', 'TokenController', array('only' => array('index', 'create', 'store', 'destroy'))); }); App::missing(function($exception) { return View::make('index'); });
Надеюсь, это поможет!