我想Global Params在Yii2中配置.
例如:
Yii :: $ app-> params ['uploadPath'] = Yii :: $ app-> basePath.'/上传/';
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.
<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>

我有一个更改密码引导模式,当用户单击更改密码导航栏菜单时将触发该模式.
我已将模态包含在页脚中.但是如何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错误.
在同一个表单上有多个模型我不想在两个模型上保存数据,但我只想在视图文件上显示一个变量
我有2个表
Organiser和Event
Organiser将登录和Create Event
现在有几个字段这是常见的用户点击登录,所以当两个表中的Create Event按钮,我想显示address从Organiser表的形式
这是我到目前为止所做的,这可能不是正确的方法,所以让我知道是否可以通过任何其他更简单的方式实现
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) 我正在研究裁剪图像模块,我需要上传图像的细节,所以我正在使用此功能
$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) 我有这样的导航标题:
<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) 我知道我在这里犯了错误,但我一整天都在寻找这个.我使用了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) 我开发了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) 我使用波纹管功能在上传后调整图像大小以显示在我的帖子上.但它适用于大于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) 我正在开发基于Yii2框架的多个网站,我想知道是否有任何好方法或者是否创建共享基本配置main.php文件甚至是好主意.
这背后的原因是我的所有项目都基于相同的系统,有很多相似之处,我只想保持干燥.配置也大致相同 - 唯一的区别实际上是数据库名称和其他一些值.甚至urlManager规则也没有那么不同.
问题是,例如,当我想FileTarget为所有网站添加额外的记录器目标时,我必须分别为每个项目执行此操作,我永远无法确定所有项目配置是否都是最新的并且所有设置都正确.
所以我想知道是否有任何Yii方式创建在多个项目中共享的默认配置文件,或者它只是一个坏主意.例如,我可以创建bootstrap组件来设置默认值,或者将默认配置添加为文件中合并配置列表中的第一项frontend\web\index.php.我在作曲家中添加了私有包,因此添加将在所有项目中共享的文件不是问题.