0

私はこのチュートリアルに従っています

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

このチュートリアルが機能するようになり、GET /books: list all books page by page; が表示されるようになりました。

ただし、いくつかのエンドポイントを作成したいので、コントローラーにメソッド テストを追加しましたが、404 が返されます。これが私のコントローラーです。

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"));
    }

}

これをurlRuleとして持っています

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

そして私はやっています

http://localhost/events/test

エンドポイントにたどり着く

そして私はこれを得る

<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>
4

1 に答える 1

0

ルールをこれに変更することで機能しました

 'rules' => [
                ['class' => 'yii\rest\UrlRule', 'controller' =>
                    ['book'],
                    'extraPatterns' => [
                          'GET test' => 'test',
                ],
                ],
于 2016-06-02T01:07:36.547 に答える