通过使用this link我尝试了一个安静的应用程序,但它不起作用并且总是返回此:
找不到对象!
在此服务器上找不到请求的URL。如果您手动输入了网址,请> >检查你的拼写,然后再试一次。
如果您认为这是服务器错误,请与网站管理员联系。 错误404 本地主机 Apache / 2.4.4(Win32)OpenSSL / 1.0.1e PHP / 5.5.1
我称之为:localhost/restful/web/users
修改
此类通话也无效:localhost/restful/web/?r=users
它返回了这个:
未找到(#404) 页面未找到。
Web服务器处理您的请求时发生了上述错误。
如果您认为这是服务器错误,请与我们联系。谢谢。
答案 0 :(得分:1)
这是我的config/web.php
:
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'components' => [
'urlManager'=>[
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
],
],
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'a',
'parsers' => [
'application/json' => 'yii\web\JsonParser',
],
],
'cache' => [
'class' => 'yii\caching\FileCache',
],
'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
],
'errorHandler' => [
'errorAction' => 'site/error',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'db' => require(__DIR__ . '/db.php'),
],
'params' => $params,
];
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = 'yii\gii\Module';
}
return $config;
控制器:
<?php
namespace app\controllers;
use yii\rest\ActiveController;
class UserController extends ActiveController{
public $modelClass = 'app\models\User';
}
也是由gii创建的我的模型。
通过启用curl并在我的控制器中使用它来解决问题。
答案 1 :(得分:1)
有相同的错误(stil在每个请求上找不到404)已经解决了将.htaccess添加到(我的yii路径)/ web文件夹(与index.php相同的地方):
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
这是因为当您创建一个干净的Yii2实例时,您没有.htaccess文件(在我看来可能是安全原因)。
对我来说:(通过编辑器
)安装(启用curl并在我的控制器中使用它)composer require --prefer-dist linslin/yii2-curl "*"
在控制器中使用
<?php
namespace app\controllers;
use yii\rest\ActiveController;
use linslin\yii2\curl;//this was added
class UserController extends ActiveController
{
不要工作。 也许这有助于某人:)