资产包生成空的JavaScript和CSS文件
namespace frontend\assets;
return [
'bundles' => [
'frontend\assets\AppAsset',
],
'targets' => [
'frontend\assets\AppAsset' => [
'basePath' => 'e:/path/yii2.loc/www',
'baseUrl' => '',
'js' => 'js/{ts}.js',
'css' => 'css/{ts}.css',
],
],
'assetManager' => [
'basePath' => 'e:/path/yii2.loc/www/assets',
'baseUrl' => '',
],
];
Run Code Online (Sandbox Code Playgroud)
config.php文件
return [
'bundles' => [
'frontend\assets\AppAsset',
],
'targets' => [
'frontend\assets\AppAsset' => [
'basePath' => 'e:/path/yii2.loc/www',
'baseUrl' => '',
'js' => 'cache/{ts}.js',
'css' => 'cache/{ts}.css',
],
],
'assetManager' => [
'basePath' => 'e:/path/yii2.loc/www/assets',
'baseUrl' => '',
],
]; …Run Code Online (Sandbox Code Playgroud) 我已经创建了新的Yii2基础项目并希望深入挖掘.
登录页面上有一个用户名字段:

我想将标签'Username'更改为自定义标签,例如'My superb label'.我已阅读手册:http: //www.yiiframework.com/doc-2.0/yii-widgets-activefield.html
稍微调查一下后,我得到了下一个结果:

我只更改了模板并更改了布局:
<?= $form->field($model, 'username', [
"template" => "<label> My superb label </label>\n{input}\n{hint}\n{error}"
])?>
Run Code Online (Sandbox Code Playgroud)
如何以正确的方式更改标签的文本?什么是最佳做法?
如何在yii2中获取登录用户的名称?我可以获得用户ID
Yii::$app->user->id;
Run Code Online (Sandbox Code Playgroud)
我知道我可以在数据库中找到这个名字,但我想要一个直接的方法.数据库中的name-column名称为"username",但是
Yii::$app->user->username;
Run Code Online (Sandbox Code Playgroud)
不起作用
Yii::$app->user->name;
Run Code Online (Sandbox Code Playgroud)
也不起作用.
我有Yii 2和AngularJS的经验,但是分开.我有两个问题:
是否可以在Yii 2的视图中使用AngularJS?我问可能而不是可行,因为我认为问题可能已经到达路由.
此外,将Yii 2和AngularJS一起使用是否公平(性能)?(对于模块化,可管理的代码,两者都是MVC.)
我搜索了很长时间,但我找不到任何合适的资源.解释是什么!
我一直在阅读有关保护REST API的内容,并阅读了有关oAuth和JWT的内容.两者都是非常好的方法,但从我所理解的,它们都在用户通过身份验证后工作,或者换句话说"登录".这基于用户凭证生成oAuth和JWT,并且一旦获得oAuth令牌或JWT,用户就可以执行其授权的所有操作.
但我的问题是,登录和注册apis怎么样?如何保护他们?如果有人读取我的javascript文件以查看我的ajax调用,他们可以很容易地找到终点和传递的参数,并且他们可以通过一些REST客户端多次点击它,更严重的是他们可以编写一个程序来点击我的注册api说一千次,这将创造一千个垃圾邮件用户,或者他们甚至可以强行登录api.那么如何保护它们呢?
我在yii2中编写API.
如何在DB中检查模型的存在?在Yii 1版本中它是如此
User::model()->exist()
我有一个ActiveForm,我想添加一个用户可以上传他们的照片的字段.问题是我没有users表中的图像属性,'yii'中的每个输入字段都需要一个模型和一个属性,如下所示.
<?= $form->field($model, 'attribute')->input($platforms) ?>
Run Code Online (Sandbox Code Playgroud)
我不想将图像分配给任何记录,也不想插入数据库,我希望将其上传到特定文件夹.
我还检查过kartik写的库,但也需要一个属性字段.
<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
<?= $form->field($model, 'email', [
'inputOptions' => [ 'placeholder' => 'Ihre E-Mail Adresse', 'class' => 'newsletter-cta-mail' ]
])->label(false)->textInput(); ?>
<?= Html::submitButton('20€ Gutschein sichern', ['class' => 'green newsletter-cta-button', 'name' => 'contact-button', 'value' => 'hallo']) ?>
<?php ActiveForm::end(); ?>
Run Code Online (Sandbox Code Playgroud)
结果成:
<form id="contact-form" action="/" method="post" role="form">
<input type="hidden" name="_csrf" value="WFlFWnIwU1Y3HnQKSn06GG46PXcjQRUzNCA9KhRiYCxvFXQ9RHIiPA=="> <div class="form-group field-newsletterform-email required has-error">
<input type="text" id="newsletterform-email" class="newsletter-cta-mail" name="NewsletterForm[email]" placeholder="Ihre E-Mail Adresse">
<p class="help-block help-block-error">Verification Code cannot be blank.</p>
</div> <button type="submit" class="green newsletter-cta-button" name="contact-button" value="hallo">20€ …Run Code Online (Sandbox Code Playgroud) 您好我正在尝试创建自己的自定义帮助程序类以与Yii2一起使用.它将处理时间,所以我将使用PHP的DateTime类.我有
<?php
namespace yii\helpers;
use Yii;
class Time
{
public static function getTime()
{
$time = new DateTime('now', new DateTimeZone('UTC'));
return $time->format('m-d-Y H:i:s');
}
}
Run Code Online (Sandbox Code Playgroud)
为了测试它我添加
use yii\helpers\Time;
到一个视图文件并调用,Time::getTime();但Yii2抛出一个ErrorException,说没有找到类'yii\helpers\DateTime'.
如果我将代码直接放入视图文件并执行它,那么php DateTime对象可以正常工作,所以我不确定我的问题是什么.
在YII中,我可以从url请求一个参数并填充一个companyAdd_id使用以下代码调用的表单字段,尝试在YII2中执行相同操作但是获取错误,寻找有关如何在YII2中执行相同操作的建议.谢谢
<?php echo $companyAdd_id = Yii::app()->request->getParam('companyAdd_id'); ?>
<?php echo $form->hiddenField($model, 'companyAdd_id', array(
'type' => 'text',
'value' => $companyAdd_id
)); ?>
<?php echo $form->error($model, 'companyAdd_id'); ?>
Run Code Online (Sandbox Code Playgroud)