谁一开始就是大神?

PHP 第62页

PHP

大家好。。请问在YII2模板中原生PHP语法写法?有没有专门在YII2模板中写原生PHP语法的写法?[2.0]

youthfans阅读(36)

如这段代码。。。

<?php if( ($status['status']) == 1 ): ?>
<span class="wh-collect"><span class="collect"><?php echo '已收藏'; ?></span>(<span id="count">0</span>)</span>
<?endif; ?>
<?php else: ?>
<span class="wh-collect"><span class="collect"><?php echo '收藏'; ?></span>(<span id="count">0</span>)</span>
<?php endif; ?>

转换为YII2中的语法 应该怎么写。。谢谢了。

Yii的模板中 只支持 原生PHP的写法,不需要做什么 转换
直接写,没区别.
提问前没试着把这段代码放到yii里跑一下?
直接写 原生的PHP 就可以了
没有区别,可以直接写
直接写就得了,除了表单,其他没必要用yii写,反倒是脱了裤子放屁 本身浏览器处理的事情 按yii那样写现在还得php引擎处理

yii2分页问题Pagination不显示分页样式[2.0]

richfrog阅读(40)

控制器代码:

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\Country;
use yii\helpers\ArrayHelper;
use yii\data\Pagination;

class CountryController extends Controller
{
	function actionIndex(){
		$query = Country::find()->where(['status' => 1]);
		$pages = new Pagination(['totalCount' => count($query), 'pageSize' => '1']);
		$models = $query->offset($pages->offset)
		    ->limit($pages->limit)
		    ->all();

		return $this->render('index', [
		     'models' => $models,
		     'pages' => $pages,
		]);
	}
}



?>

view

<?php
use yii\widgets\LinkPager;

foreach ($models as $model) {
    // 在这里显示 $model
    echo 'ID:'.$model->id;
    echo '名称:'.$model->name;
    echo '验证码:'.$model->code;
    echo '<hr/>';

}

?>

 <?php echo  LinkPager::widget(['pagination' => $pages]); ?>

数据库中有11条数据,这里我设置每页显示1条。应该有11页才对。
但是页面只显示foreach中的输出。
却没有看到上下页的分页样式。

对比你的代码,你是怎么用的
没有克隆对象, count()没用对
LinkPager 继承这个类过后,自己再继续重写样式就可以了。

记录日志会自动记录在在哪行执行[2.0]

Bravelove阅读(36)

[
	'class' => 'yii\log\FileTarget',
	'levels' => ['info','error'],
	'categories' => ['guangdian'],
	'logVars'=>[],
	'logFile' => '@app/runtime/logs/gd'.date('Ymd').'.log',
	'maxFileSize' => 1024 * 5,
	'maxLogFiles' => 150,

]
\Yii::info($action_name.'操作成功 muid='.$muid,'guangdian');

配置和使用 我觉得都没有问题 但是 日志 生成出来 我发现很奇怪
日志如下
2016-05-16 14:12:10 [123.56.193.180][-][-][info][guangdian] CallbackLoginAd——操作成功 muid=4e192b1f9ed70844e94a79eca9c3b59c

in /root/web/baidu.com/controllers/GuangdianController.php:118

跪求去掉 下面 in /root/web/baidu.com/controllers/GuangdianController.php:118 方法

默认的日志格式就是 {date}{ip}{userID}{sessionID}{level}{category}{text}{trace}
不知道有没有理解对你的问题,你希望去掉的 “in xxxxx” 应该就是日志中的{trace}域,目前yii不支持自定义日志格式,你如果非要这么做,只能自己改写yii\log\Target::formatMessage方法,自己格式化自己需要的日志格式。
该方法的代码如下:
你可以实现一个自定义的Target继承自FileTarget,然后在你自己的Target中改写此方法即可。

webuploader的多文件上传如何保存?[2.0]

Kindcrab阅读(36)

上传的插件我使用的是webuploader.js这个插件,视图里已经显示OK

<div class="fileupload fileupload-new">
    <div class="img-preview"></div>
</div>
<?= \iisns\webuploader\MultiImage::widget() ?>

然后我上传到控制器的一个操作里,打印$_FIELS,在响应里也有文件数据。接下来怎么保存呢?我查了很多上传的例子,大概都是说视图用activeForm生成一个表单,在控制器里面用:

$image =  UploadedFile::getInstance($model,'数据表存储字段');

这种方法来传到model里面。这里我很混乱的就是我的webuploader上传不是用activeForm生成的,属性里也就没有这么一个字段。我该怎么使用UploadedFile呢?渴望大侠高人指点迷津, 不胜感激!

有数据就把数据写到文件试试
谢谢,收藏了。

$model->load($data)这个值一直是false[2.0]

ecyqueen阅读(39)

有没有大神来说说,感觉这框架怎么这么难呢!!!我的代码都是照着文档写的,表单是我用静态页面写的。

得确定你提供的data符合要求。 默认格式是 model[id->1,name->xxx,……]这样的。
不确定你可以去看yii自己生成的代码里的格式。
你可以试试 $model->getErrors() 这个函数的返回值
这个问题最后怎么解决的呢,我在网上找了资料,不管是增加form的名字(如:$model->load($post,$formTable);)还是添加load的第二个参数设置为空都不行,rules中加了safe字段依然不行,代码如下:
视图:
1.png
模型:
class Record extends Model{

零基础新手请教一些基础问题[2.0]

Wendyqueen阅读(40)

以前用xampp玩过wordpress但是并不懂php只会一些简单的模板和函数,现在知道yii之后突然发现这个才是值得学习的东西。但是感觉用过现成的博客系统之后,遇到yii框架瞬间懵逼了。
主要有两个问题:1、安装调试;2、后面的开发学习思路
第一:
我以前是在本地安装xampp环境运行wordpress的,只需要装好xampp创建数据库然后到网站目录放好wordpress程序,配置一下config.php运行就能装好,并进入后台使用。。
但是yii完全不一样了
首先composer我就不知道是个什么玩意,网上说是依赖。但是我不明白他到底是怎样个依赖,可以说两个php文件之间需要调用另外一个php文件里的某个功能的时候,那这个时候这个依赖关系就是说的连接独立的php吗?
然后就收composer的安装了,自己电脑上直接下载的官网上的安装文件,一直next始终装不上,经常出现连接错误神马的。不过没关系折腾惯了,始终相信奇迹的一直试,最后居然真安装成功了。不明白这个东西到底算不算是yii环境的一部分呢?还有我在安装composer的时候是不是下载了某些东西或者说建立了一个远程连接,远端服务器是不是如果终止这个服务,我这边的这个composer环境就不能用了yii也就不能用了?还是说安装composer必须从远程下载文件才能执行安装,装好它之后就能够配置yii了,就算以后composer下载再难再慢,只要我不更新或删除composer的话,我的yii还是能继续在这个环境运行
最后composer有个什么插件叫composer-asset-plugin,这个我好像并没装成功,但是最后我的yii还是正常访问了。还有个composer.phar又是什么,这个好像也是乱装的。总之乱糟糟的最后勉强配置能访问到yii了
第二个问题:
访问到yii后,根据教程直接到数据库面板新建了个数据库建了个用户的表,然后yii文件夹里面的用户数据也对应改好。能进入yii最原始的后台了,结果发现也只是登录了。然而后台什么东西都没有,并没有。。。装过wordpress的我每次进去都能看到文章啊分类啊,进入yii后台后我懵逼了,这个后台是需要自己从0开始写吗?自己去写面板,建立设置分类的版面,建立写文章的面板和编辑器,还有一些网站页面的固定内容参数配置面板,等等这些东西都是要自己去写的吗?这个后 全不知道有啥,我该怎么学,搜了一下完全没看到后台开发的教程。。
目前就是我用yii的初次感受,希望大家能给我一些建议。不要建议我放弃,虽然没基础,但是我想学,一定要认真学。因为以前玩wordpress感觉白学了。既然接触了php这次我要认真的学一次,哪怕用yii的方式写出一个简单的类似wordpress的后台,我也就满足了。谢谢大家希望大家给出宝贵建议。

composer安装的确是个大问题,我在初次安装Yii2时使用composer从未成功过,几乎放弃,后来在一个朋友的帮助下,终于是把composer安装给整通了,国内composer方式直接安装Yii2最大的一个问题就是强,使用Composer中国全量镜像(http://www.phpcomposer.com/)不用翻.强就可以成功安装Yii2,这是关键,我给楼主说一说这个是怎么做的:
//全局安装composer(windows)
将composer.phar放置到php.exe同一目录下,再编辑一个composer.bat文件,这样就可以直接使用composer安装了,而无需再输入php composer.phar,这样的长格式命令。
注意:应将php.exe的运行目录事先加入到系统的path环境变量当中去!
祝你成功!
建议:你的问题太多,最好一个话题只提一个问题,这样大家知道怎么帮你!
回答下你第二个问题吧,
yii是个框架 wordpress是个cms
框架要重头开发 cms现成的站。。
所以就重头开始写吧!

Yii::info[2.0]

momohope阅读(38)

如果我在main.php的LOG设置中,没有定义h1这个categories,以下语句能不能写入日志文件?
(使用方式:/usr/server/php/bin/php /var/test/yii/yii test/calculate-test >> /root/logs/week.log 2>&1)
Yii::info('hello','h1');

`[
分类可以随便命名的
你把info级别的错误记录日志没。。。

AR::findOne()参数问题[2.0]

BeeLion阅读(37)

$model = WxReply::findOne(['in','id',$ids]);
$model = WxReply::find()->where(['in','id',$ids])->One();

上面的代码查找不到,下面的才行,为什么?

$model = WxReply::findOne(1); findOne是查询1条记录。里面直接写id就可以。
$model = WxReply::findOne(['id'=>$ids]);
这样呢?

modules模块化产生的url有重,如何解决。[2.0]

loveCherry阅读(41)

http://admin.myblog.com/article/article/index 这是我的一个文章列表连接 明显多了一个 article 但是除掉又不行。。报未找到。 解析流程我想是 第一个 article是找到config配置文件 找到了类

article' => ['class' => 'app\modules\article\Module',],  

然后根类找到$controllerNamespace
接下来自然而然的 就找到了 /article/index 这样完成了一个模块访问,
那么问题就来了。url不够简洁。求各位大神解惑。

config文件配置

  'modules' => [
        'article' => ['class' => 'app\modules\article\Module',],
    ],


这是module.php
<?php

namespace app\modules\article;

/**
 * article module definition class
 */
class Module extends \yii\base\Module
{
    /**
     * @inheritdoc
     */
    public $controllerNamespace = 'app\modules\article\controllers';

    /**
     * @inheritdoc
     */
    public function init()
    {
        parent::init();

        // custom initialization code goes here
    }
}

它url出现这个article/article/index,中间这个是控制器名称,你把这个article控制器改成 index 也是个解决办法
这不算是有重,两个article的意义不一样,只是因为你把两个取了一样的名字。
个别路径要调整你可以指定别名,比如用art代替 article/article 。
如果量多,修改路由转发规则
没看太明白,不过我感觉你需要的是/article,url路由要/开头,不然的话是相对路由,如果你当前已经在article模块,就会再出一个article

登录

找回密码

注册