我的Yii2应用程序中有两个登录系统.首先是使用User表的默认登录系统,第二个是使用sms_account表.在自定义控制器中,我已经创建了登录操作actionLogin().我已经为我的自定义控制器添加了访问控制,但我遇到的问题是当一个人没有登录时,它会重定向到site/login.我想custom-controller/login在Yii2访问控制中更改重定向到URL.我的代码是:
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login'],
'allow' => false,
'roles' => ['@']
],
[
'actions' => ['home'],
'allow' => true,
'roles' => ['@']
]
]
]
];
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何更改访问控制URL?
我必须从现有的表数据中创建大量数据。每天大约有5000到10000条数据。
我的控制器:
$skus = Sku3d::find()->all();
foreach ($skus as $sku) {
$model = new Loghour3d();
$model->sku = $sku->sku;
$model->modeler = $sku->modeler;
$model->team = $sku->team;
$time = new \DateTime('now');
$today = $time->format('Y-m-d');
$model->day = $today;
$model->handover = $sku->handover;
$model->hour = $sku->totalhours;
$model->save();
}
Run Code Online (Sandbox Code Playgroud)
但是创建的时间不正确。示例:$sku->totalhours = 12但是$model->hour = 600我的代码是$model->hour = $sku->totalhours;. 所以我不知道从哪里来600。
还有没有更好的方法来完成这项任务,因为现在大约需要 15-20 分钟。
我正在尝试使用yii2-queue https://github.com/yiisoft/yii2-queue/blob/master/docs/guide/usage.md
它说:
为了使用扩展,您必须按照以下方式进行配置:
Run Code Online (Sandbox Code Playgroud)return [ 'bootstrap' => [ 'queue', // The component registers its own console commands ], 'components' => [ 'queue' => [ 'class' => \yii\queue\<driver>\Queue::class, 'as log' => \yii\queue\LogBehavior::class, // Other driver options ], ], ];
我的问题很简单:我应该在哪个PHP文件,哪个目录中放置此代码?
注意:我正在使用基本模板。
所以我想做的是想在 php 中每 3 列打印后创建一个新行,使用 bootstrap 列和 foreach 循环这是我的代码
<div class = "row">
<?php foreach($location_list as $location)
{
echo "<div class ='col-md-4'>
<hr> $location->address </hr>
<hr> $location->name </hr>
<hr> $location->pin </hr>
</div> ";
}
?>
</div>
Run Code Online (Sandbox Code Playgroud) 我想GridView::widget()在Yii2 中生成的表上应用类.
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'mobile_number',
'email:email',
'name',
'national_id',// and so....
Run Code Online (Sandbox Code Playgroud)
如何在桌面上应用CSS GridView::widget()?我想申请这个:
<table class="table tblSec">
Run Code Online (Sandbox Code Playgroud) 我是Laravel的初学者,在学习"命名空间"和"使用"语句时,我发现,例如,在Controllers中,当我们第一次编写"use"语句时,它应该在函数内部重复.
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
Run Code Online (Sandbox Code Playgroud)
为什么这样工作呢?为什么在不重复函数的情况下编写"use"语句就不够了?而且,如果我要创建另一个具有相同命名空间的Controller,我是否应该在那里编写相同的"use"语句?
我正在使用高级项目应用程序,并尝试在 Yii2 中添加 URL 规则来处理带有破折号的自定义 URL。
我想要做的是将 URL 更改为
到
我有以下配置,当 URL 参数没有破折号时(exampleposttitle),该配置可以正常工作。
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
// ...
'<url:\w+>' => 'post/details',
],
],
Run Code Online (Sandbox Code Playgroud)