草庐IT

php - 如何从 Yii 中的模型访问 Controller 功能?

我想从模型内部访问Yii的createUrl()函数。这是我在afterSave()中的代码。publicfunctionafterSave(){...morecode...$message="Hi".$this->firstname.''.$this->lastname.',\nWelcometoXYZ.Thisisthemailthatissentfortheactivationofyouraccount.\nKindlyclickthislinkorcopypasteittotheURLandregisteryouraccount.'.$this->createUrl('/use

php - Yii 使用模型上传文件

我只是想使用模型上传文件。我在当前情况下收到异常消息(请参阅下面的模型/Controller/View):CExceptionMyFileanditsbehaviorsdonothaveamethodorclosurenamed"save".如果我的模型扩展了CActiveRecord而不是CFormModel,则存在另一个异常:CDbExceptionThetable"MyFile"foractiverecordclass"MyFile"cannotbefoundinthedatabase.我的错误是什么?这些是文件:模型:MyFile.phpclassMyFileextendsCF

php - 在 Yii2 中使用自动完成更新隐藏字段

我正在开发一个自动完成小部件。到目前为止,这是我的代码。我的看法:select(['nameasvalue','nameaslabel','c_idasid'])->asArray()->all();echoAutoComplete::widget(['name'=>'Company','id'=>'ddd','clientOptions'=>['source'=>$data,'autoFill'=>true,'minLength'=>'4','select'=>newJsExpression("function(event,ui){console.log(ui);$('#user-c

php - 有没有办法强制 Yii2 在每次请求时重新加载模块 Assets ?

我的网站分为独立的模块。每个模块都有自己特定的css或js文件。当我第一次打开一个使用我的Assets的页面时,Yii的assetManager会创建一个文件夹。不幸的是,如果我在文件中更改某些内容,Yii1.x不会重新加载我的css或js文件。我必须手动删除web/assets文件夹。当您开发应用程序时,这真的很烦人。这在我将模块添加到后端文件夹时有效,但在我使用自己的命名空间在供应商文件夹中创建模块时无效。 最佳答案 在Yii2中,您可以像这样将时间戳附加到Assets的URL中......return[//...'compon

php - 将 Yii2 GridView 与数据数组一起使用

我有一个数组:$arr=['ID'=>'A1','Description'=>'Itemtobesold',...]在Controller中:$provider=newArrayDataProvider(['allModels'=>$arr,//'sort'=>['attributes'=>['ID','Description'],],'pagination'=>['pageSize'=>5]]);$this->render('index',['provider'=>$arr]);在View中(index.php):GridView::widget(['dataProvider'=>$

php - 停留在使用 Yii 2 和 PHP 进行 Web 应用程序开发的第 52 页

您好,我已转到第52页,我在尝试查看客户/添加路线时遇到异常。我设法通过创建一个软链接(softlink)来修复它-但为什么我需要这样做,这是修复它的正确方法还是本书与yii代码库不同步我检查了勘误并应用了建议的修复(以及示例下载书籍代码中的内容)我知道书会过时-但这是我遇到的错误PHPUserError–yii\base\ErrorExceptionException'yii\base\InvalidParamException'withmessage'Thefileordirectorytobepublisheddoesnotexist:/var/www/html/crmapp/v

php - Yii2 - 以一种形式保存多个相关的 ActiveRecord 模型

表结构如下:TableBaseTableid(primarykey)INTdescriptionVARCHAR(255)TableChildTableid(primarykey)(foreignkeyreferencetoBaseTable)INTchild_propertyVARCHAR(255)其实就是数据库表中的一种继承关系。然后我使用gii为两者生成具有关系函数的模型,并为ChildTable生成CRUD操作。这是ChildTable中的关系函数:publicfunctiongetBaseTable(){return$this->hasOne(BaseTable::classN

php - 尝试登录时 Yii2 中的错误请求 (#400)

我在尝试登录系统时收到BadRequest(#400)错误。我在本地主机上工作。主要布局:language?>">charset;?>">title);?>head();?>查看(login.php):title='Login';$this->params['breadcrumbs'][]=$this->title;?>OpenXcellPvt.Ltd.SignintogetintouchLogin站点Controller:['class'=>AccessControl::className(),'rules'=>[['actions'=>['login','error'],'allo

javascript - Yii2 下拉列表 onchange 重定向到 URL

我希望这段代码重定向到/user/create我该怎么做?echoHtml::beginForm();echoHtml::activedropDownList($model,//name'COMPANY_ID',//select$companyList,//items['onchange'=>'this.form.submit()']//options);echoHtml::endForm();` 最佳答案 默认情况下,表单将有action=''和method='post'。你必须改变它:echoHtml::beginForm(['

php - 如何在 Yii2 验证规则消息中放置换行符

我需要打破Yii2验证规则中使用的长消息。我试过这样的:publicfunctionrules(){return[['username','required','message'=>'longmessagefirstlinehere'."".PHP_EOL.'longmessagelastlinehere'],];}但是出现在消息中并且该行不会在我需要的地方中断。明确一点,我得到的是:longmessagefirstlineherelongmessagelastlinehere而不是:longmessagefirstlineherelongmessagelastlinehere有人可以