标签: yii2-advanced-app

如何在Yii2中配置全局uploadPath和uploadUrl?

我想Global Params在Yii2中配置.

例如:

  1. 这将存储所有文件上载的服务器路径.

Yii :: $ app-> params ['uploadPath'] = Yii :: $ app-> basePath.'/上传/';

  1. 这将存储指向服务器位置的Url以进行文件上载.

Yii :: $ app-> params ['uploadUrl'] = Yii :: $ app-> urlManager-> baseUrl.'/上传/';

当我设置这样的params时:

'uploadPath' => Yii::$app->basePath . '/uploads/',
'uploadUrl' => Yii::$app->urlManager->baseUrl . '/uploads/',
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

注意:尝试获取非对象的属性

我为uploadPath及其工作做了这个:

'uploadPath' => Yii::getAlias('@common') . '/uploads/',
Run Code Online (Sandbox Code Playgroud)

但我无法获取uploadUrl并打印图像.请帮忙,我将如何在params中设置全局uploadUrl.

params yii2 yii2-advanced-app

6
推荐指数
1
解决办法
2376
查看次数

如何将自定义HTML放入Yii2 GridView标头?

<abbr></abbr>bootstrap中有这个标签会自动显示缩写词的弹出窗口.我想将此标记插入到gridview中具有属性名称的某个标题中act.到目前为止,这是我的代码.

        [
            'attribute'=>'act',
            'format'=>'raw',
            'label'=>'<abbr title="Area Coordinating Team">ACT</abbr>',
            'value'=>function($model){
              return '<span class="fa fa-thumbs-up text-green"></span>';
            }
        ],
Run Code Online (Sandbox Code Playgroud)

但输出字面上显示了整体 <abbr title="Area Coordinating Team">ACT</abbr>

在此输入图像描述

html formatting gridview yii2 yii2-advanced-app

6
推荐指数
2
解决办法
2665
查看次数

Yii2如何将模型实例传递给主布局?

我有一个更改密码引导模式,当用户单击更改密码导航栏菜单时将触发该模式.

我已将模态包含在页脚中.但是如何ChangePassword model instance将页脚布局文件传递给页脚?

可以beforeRender Or EVENT_BEFORE_RENDER用吗?如果是,怎么样?

正如所建议的那样,我将以下代码放在/ config/bootstrap.php中:

yii\base\Event::on(yii\base\View::className(), yii\base\View::EVENT_BEFORE_RENDER, function() {
    $modelChangePassword = new frontend\models\ChangePassword;
    $this->view->params['modelChangePassword'] = $modelChangePassword;
});
Run Code Online (Sandbox Code Playgroud)

但它给出了Using $this when not in object context错误.

layout yii2 yii2-advanced-app

6
推荐指数
1
解决办法
3132
查看次数

同一个ActiveForm上的多个模型yii2

在同一个表单上有多个模型我不想在两个模型上保存数据,但我只想在视图文件上显示一个变量

我有2个表 OrganiserEvent Organiser将登录和Create Event 现在有几个字段这是常见的用户点击登录,所以当两个表中的Create Event按钮,我想显示addressOrganiser表的形式

这是我到目前为止所做的,这可能不是正确的方法,所以让我知道是否可以通过任何其他更简单的方式实现

public function actionCreate()
{
    $model = new Event();

    $model2 = $this->findModel2(Yii::$app->user->id);


    if ($model->load(Yii::$app->request->post())) {

        if($_POST['User']['address'] == null)
        {
            $model->location = $model2->address;
        }
        else{
            $model->location = $_POST['User']['address'];
        }

        $model->is_active = 1 ;

        $model->save();


        return $this->redirect(['view', 'id' => $model->id]);
    } else {

        return $this->render('create', [
            'model' => $model,
            'model2' => $model2
        ]);
    }
}
protected function findModel2($id)
{
    if (($model2 = User::findOne($id)) !== null) …
Run Code Online (Sandbox Code Playgroud)

javascript php yii2 yii2-advanced-app

6
推荐指数
1
解决办法
2629
查看次数

在yii2中找不到"Imagine\Gd\Imagine"类

我正在研究裁剪图像模块,我需要上传图像的细节,所以我正在使用此功能

$image = Image::getImagine()->open($path);
$size = $image->getSize();
Run Code Online (Sandbox Code Playgroud)

使用此功能时,它给了我错误

Class 'Imagine\Gd\Imagine' not found

                case self::DRIVER_IMAGICK:
                    if (class_exists('Imagick', false)) {
                        return new \Imagine\Imagick\Imagine();
                    }
                    break;
                case self::DRIVER_GD2:
                    if (function_exists('gd_info')) {
                        return new \Imagine\Gd\Imagine();
                    }
                    break;
                default:
                    throw new InvalidConfigException("Unknown driver: $driver");
            }
        }
        throw new InvalidConfigException("Your system does not support any of these drivers: " . implode(',', (array) static::$driver));
Run Code Online (Sandbox Code Playgroud)

此错误来自它库文件

vendor\yiisoft\yii2\imagine\BaseImage.php
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?任何人都可以建议我吗?

还添加了命名空间

namespace yii\imagine;

use Yii;

use yii\imagine\Image\Box;
use yii\imagine\Image\Color;
use yii\imagine\Image\ImageInterface;
use yii\imagine\Image\ImagineInterface;
use yii\imagine\Image\ManipulatorInterface;
use yii\imagine\Image\Point;



use yii\base\InvalidConfigException;
use …
Run Code Online (Sandbox Code Playgroud)

yii2 yii2-advanced-app

6
推荐指数
1
解决办法
2496
查看次数

如何在Yii2中自定义Navbar属性

我有这样的导航标题:

<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
  <div class="container-fluid">
    <div class="navbar-collapse collapse">
      <form class="navbar-form navbar-right" role="search">
        <div class="form-group has-feedback">
            <input id="searchbox" type="text" placeholder="Search" class="form-control">
            <span id="searchicon" class="fa fa-search form-control-feedback"></span>
        </div>
      </form>
    </div><!--/.navbar-collapse -->
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想使用以下代码转换此代码时遇到问题yii\bootstrap\NavBar;:

<div class="navbar-collapse collapse">
     <form class="navbar-form navbar-right" role="search">
           <div class="form-group has-feedback">
                <input id="searchbox" type="text" placeholder="Search" class="form-control">
                <span id="searchicon" class="fa fa-search form-control-feedback"></span>
            </div>
      </form>
</div><!--/.navbar-collapse -->
Run Code Online (Sandbox Code Playgroud)

这是我Layout使用的代码yii\bootstrap\NavBar;:

<?php
    NavBar::begin([
        'brandLabel' => 'My Company',
        'brandUrl' => Yii::$app->homeUrl,
        'options' => [
            'class' => …
Run Code Online (Sandbox Code Playgroud)

css twitter-bootstrap-3 yii2-advanced-app

6
推荐指数
1
解决办法
9208
查看次数

向按钮提交按钮值但未能发布值

我知道我在这里犯了错误,但我一整天都在寻找这个.我使用了yii2框架,我还是新来的,我想访问partone/two页面,partone/two页面有两个提交按钮,一个用于添加行,第二个用于验证输入

PartoneController.php中

<?
public function actionTwo() { 

    if(\Yii::$app->user->isGuest) { 
        $this->goHome();
    } 

    $models = []; 
    $val = "" ;
        //Create array of items 
    Yii::trace("Lets start: ");

    if(Yii::$app->request->post('addRow') == 'true'){
      Yii::trace("hello");
      Model::loadMultiple($models, Yii::$app->request->post('items'));

      $model = new RelationForm();
      array_push($models, $model);
      return $this->render('two', ['items' => $models]); 
    } 

    if (Model::loadMultiple($models, Yii::$app->request->post('items')) && Model::validateMultiple($models)) 
    { 
        Yii::trace("hello again");
        $count = 0; 
        for($i = 0 ; $i < $models.length(); $i++){ 
            if(strpos($relationShownCurrently, '' + $i) !== FALSE){ 
                if(!$items[$i]->store()){ 
                    return $this->render('two', [ 'items' => $models …
Run Code Online (Sandbox Code Playgroud)

php yii2 yii2-advanced-app

6
推荐指数
1
解决办法
473
查看次数

Yii2 REST + Angular Cross Domain CORS

我开发了Angular和Yii2 REST服务.在跨域有问题.下面添加我的angular&Yii2 REST代码.

AngularJs:(像' http://organization1.example.com ', ' http://organization2.example.com ',....)

$http.defaults.useXDomain = true;
$http.defaults.withCredentials = true;
$http.defaults.headers.common['Authorization'] = 'Bearer ' + MYTOKEN
Run Code Online (Sandbox Code Playgroud)

我来自Angular Controller的请求:

apiURL = 'http://api.example.com';
$http.get(apiURL + '/roles')
     .success(function (roles) { })
     .error(function () { });
Run Code Online (Sandbox Code Playgroud)

Yii2 .htaccess :( REST网址如' http://api.example.com ')

Header always set Access-Control-Allow-Origin: "*"
Header always set Access-Control-Allow-Credentials: true
Header always set Access-Control-Allow-Methods "POST, GET, PUT, DELETE, OPTIONS"
Header always set Access-Control-Allow-Headers "Authorization,X-Requested-With, content-type"
Run Code Online (Sandbox Code Playgroud)

Yii2我的行为:

public function behaviors() {
    $behaviors = parent::behaviors();
    $behaviors['corsFilter'] = [
        'class' …
Run Code Online (Sandbox Code Playgroud)

rest yii-components angularjs yii2 yii2-advanced-app

6
推荐指数
2
解决办法
7349
查看次数

如何通过yii2中的想象扩展来调整图像大小

我使用波纹管功能在上传后调整图像大小以显示在我的帖子上.但它适用于大于500px 300px的图像.当我上传小于这个尺寸的图片时,我的网站图片行会中断.

use yii\imagine\Image;    
public function upload() {
            $this->pictureFile->saveAs('../files/upload/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension);

            Image::thumbnail('../files/upload/' . $this->pictureFile, 500, 300)
                    ->save('../files/upload/thumbnail-500x300/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension, 
                            ['quality' => 70]);
            unlink('../files/upload/' . $this->pictureFile->baseName . '.'  . $this->pictureFile->extension);
        }
Run Code Online (Sandbox Code Playgroud)

yii yii-extensions yii2 yii2-advanced-app

6
推荐指数
1
解决办法
8111
查看次数

Yii2中所有项目的默认main.php配置文件

我正在开发基于Yii2框架的多个网站,我想知道是否有任何好方法或者是否创建共享基本配置main.php文件甚至是好主意.

这背后的原因是我的所有项目都基于相同的系统,有很多相似之处,我只想保持干燥.配置也大致相同 - 唯一的区别实际上是数据库名称和其他一些值.甚至urlManager规则也没有那么不同.

问题是,例如,当我想FileTarget为所有网站添加额外的记录器目标时,我必须分别为每个项目执行此操作,我永远无法确定所有项目配置是否都是最新的并且所有设置都正确.

所以我想知道是否有任何Yii方式创建在多个项目中共享的默认配置文件,或者它只是一个坏主意.例如,我可以创建bootstrap组件来设置默认值,或者将默认配置添加为文件中合并配置列表中的第一项frontend\web\index.php.我在作曲家中添加了私有包,因此添加将在所有项目中共享的文件不是问题.

yii2 yii2-advanced-app

6
推荐指数
2
解决办法
1257
查看次数