2016-06-01 11 views
0

ich dieses Tutorialneben Standardendpunkt Erstellen von benutzerdefinierten Endpunkte

folgende bin

http://learncooltech.com/yii2-angular-how-to-create-single-page-application-in-minutes/

ich dieses Tutorial bekam und jetzt arbeiten kann ich sehen, GET/Bücher: Liste aller Bücher Seite für Seite;

Aber jetzt möchte ich einige Endpunkte erstellen und in meinem Controller ich eine Methode Test hinzugefügt, aber ich bekomme einen 404. hier ist mein Controller

namespace app\controllers; 

use yii\rest\ActiveController; 

class BookController extends ActiveController 
{ 
    public $modelClass = 'app\models\Book'; 

    public function behaviors() 
    { 
     return 
     \yii\helpers\ArrayHelper::merge(parent::behaviors(), [ 
      'corsFilter' => [ 
       'class' => \yii\filters\Cors::className(), 
      ], 
     ]); 
    } 


    public function actionTest(){ 
     return json_encode(array("name"=>"John Doe")); 
    } 

} 

Ich habe dies als meine urlRule

'urlManager' => [ 
      'enablePrettyUrl' => true, 
      'enableStrictParsing' => true, 
      'showScriptName' => false, 
      'rules' => [ 
       ['class' => 'yii\rest\UrlRule', 'controller' => ['book']], 
      ], 
     ], 

und ich tue

http://localhost/events/test 

an den Endpunkt erhalten

und ich dieses

<head> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <meta name="csrf-param" content="_csrf"> 
     <meta name="csrf-token" content="cWdHTlZnWE8uNn5jEDQVHwZXJDcUIykKADUjAgM/Ei4dXn4mOAwNCg=="> 
     <title>Not Found (#404)</title> 
     <link href="/assets/a7503887/css/bootstrap.css" rel="stylesheet"> 
     <link href="/css/site.css" rel="stylesheet"> 
    </head> 
    <body> 

Antwort

0

wurde es durch eine Änderung der Regel auf diese

'rules' => [ 
       ['class' => 'yii\rest\UrlRule', 'controller' => 
        ['book'], 
        'extraPatterns' => [ 
          'GET test' => 'test', 
       ], 
       ], 
Arbeits
Verwandte Themen