按照 2.0 中文的教程,一直显示 404 错误。那个教程的例子有谁操作成功的,我学习 Yii 就为了搭建 API 接口方便。
看官方的英文文档弄好了,不用大家回答了
按照 2.0 中文的教程,一直显示 404 错误。那个教程的例子有谁操作成功的,我学习 Yii 就为了搭建 API 接口方便。
看官方的英文文档弄好了,不用大家回答了
layouts/main.php里面如何能拿到我下面控制器common方法返回的数据?
class CommonController extends Controller
{
public function actionIndex()
{
$model = News::find()->limit('4')->all();
return $model;
}
}
1111111111111111111111
main是主要渲染的layout,所以在每个视图几乎都会渲染到这个layout,那么你的方法就必须要能够让每个控制器都能继承到(或者能调用到),那么你可以在Controller定义一个方法,那么你在layout那里就可以用 $this->function(); 来获取你要的值了
比如定义好几个字段都不允许为空,错误提示为:字段名+错误提示,怎么写message语句;就是保证错误信息自动调用当前的attributeLabes的标签!
类似以下写法
public function rules()
{
return [
[['title', 'image', 'content'], 'required','message'=>"{{$attribute}}不能为空"],
[['content'], 'string'],
[['title', 'image'], 'string', 'max' => 225]
];
}
其中{attribute}
是属性名称,{value}
是用户输入的值
yii2的英文我看不太懂,试了好多次都没成功
我想弱弱的问下,到底应该怎么做。
有人说要加’language’ => ‘zh_CN’,那么加到哪个文件
如果不是,到底要怎么做,
谢谢各位高手相告
今天有时间研究了下,和大家共享(basic 模版):
修改config目录下的web.php文件,添加
这样可以把yii2定义的英文翻译成中文,但是页头需要自己修改 views/layouts/main.php文件自己修改。
那么,如果用gii自动生成数据库CURD操作的话,数据库的显示怎么改成汉字呢?
需要在model类中定义attributeLabels()方法:
但是这样定义是死的,不灵活,浪费了Yii::t()函数的强大功能,翻译成其他语言还得修改源程序。
以上述代码为例,修改代码为:
在config目录下的web.php文件,添加以下内容
return [ …
‘i18n’ => [
… ]
return [
];
config/maim.php
return [
…
…
]
在进行RESTful时,默认输出格式是xml,我在web.php配置
'response' => ['format' => 'json',],
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule', 'controller' => ['player', 'custom']],
],
],
// yii\web\Application类
public function handleRequest($request)
{
if (empty($this->catchAll)) {
list ($route, $params) = $request->resolve();
} else {
$route = $this->catchAll[0];
$params = array_splice($this->catchAll, 1);
}
try {
Yii::trace("Route requested: '$route'", __METHOD__);
$this->requestedRoute = $route;
$result = $this->runAction($route, $params);
if ($result instanceof Response) {
return $result;
} else {
$response = $this->getResponse();
//在这个地方打印$response,它的format属性还是默认值xml,没有改变?
if ($result !== null) {
$response->data = $result;
}
return $response;
}
} catch (InvalidRouteException $e) {
throw new NotFoundHttpException($e->getMessage(), $e->getCode(), $e);
}
}
为什么response对象的format属性还是xml
yii\rest\Controller 有定义了一个 behavior contentNegotiator
这个 filter
会根据 客户端的 Accept
请求头, 重设 Response
的 format
属性,yii\filters\ContentNegotiator
简单说就是 如果 Accept: application/xml
, 则 format
会被设置为 xml
,如果是 Accept: application/json
会被设置为 json
,你可以在 web.php
里面设置一个默认值,请求的时候会根据 Accept
请求头自动重设 format
属性,你的应用可以自适应 xml
,或者 json
,或者,把这个 filter
去掉,应用一直使用 json
格式
你的问题可能就是,应用发送了 Accept: application/xml
请求头,发送 json
请求头就 ok 了
yii高级模板web入口文件在哪里?
默认是没有入口文件的,需要你用 init
脚本初始化
听说 Yii 已经包含了 Bootstrap3 ,我想问下载下来的安装包就已经有 Bootstrap3 了吗?该怎么用啊??
这个教的不错,http://www.tuicool.com/articles/bAzMVje
自带集成了,你可以去看看手册,一般在调用微件的时候就能看到了
默认 composer.json 里是包含 bootstrap 的,根据需要增加或删除吧。
Yii 怎么加载一个 PHP 文件,若想要全局都可以使用这个文件里封装的函数,在哪个位置加载合适呢?
在 index.php 中加载就可以全局使用了。
@YiiSoEasy 这样做是很不妥的,yii的优势之一就是”惰性加载”,这样做就是完全摒弃了这种优势。并且破坏封装,没有逼格。
为啥你每次都自问自答?刷积分?
$.ajax({
url:"<?php echo $this -> createUrl('edit') ?>",
type:'post',
data:{aidArr:aidArr,hide:obj},
dataType:'json',
success:function (data){
if(data.status == 1){
window.location.href = "<?php echo $this -> createUrl('select') ?>";
}else{
alert('发布失败');
}
},
error:function(boj,info){
alert(info);
},
});
这到底是什么问题造成的啊?昨天写完都没问题,功能都测试过了,但是今天就发现全部由ajax提交的都提示这错误了,一头雾水+无从下手,各位帮忙一下啊!!!
400 错误
有可能是你的action方法有定义的参数,但是这里没有传
1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
2、请求参数有误。
AssetBundle的basePath和sourcePath属性分别什么意思?
权威指南有点不太懂,求详细解释,Thank you ^_^
这么给你说吧,光指定sourcePath
,然后把js或者css放到非web目录,YII
就会自动在@webroot/asset
目录生成一个随机文件夹,然后复制js和css文件进去;
如果指定了basePath,则会直接引用源文件,不会把文件复制到@webroot/asset
目录。
比如
上面这段代码,在页面源码里引用的时候就是http://site/frontend/web/asset/1dcef3qr/js/script.js
而上面这段代码,在页面引用的时候就是http://site/common/js/script.js
呃,不知道代码怎么乱了,写的时候还好好的啊!