什么是在yii 1.x中将IN条件添加到活动查询的活动记录方式,您可以像这样使用CDbCriteria
$cr = new CDbCriteria();
$cr->addNotInCondition('attribute', $array);
Run Code Online (Sandbox Code Playgroud)
在yii2活动记录实现中似乎没有等效的API调用,如何通过活动记录执行此操作?
在Yii2中,您可以使用\ yii\web\User类中的identityInterface对象访问当前用户的标识界面,使用类似这样的内容
\Yii::$app->user->identity->id;
Run Code Online (Sandbox Code Playgroud)
有没有办法获取和设置其他参数(不扩展标识类)?
基本上相当于Yii 1.x getState(),以及存储和检索会话信息的setState()方法CWebUser
Yii::app()->user->setState("some_attribute",$value);
Yii::app()->user->getState('some_attribute',$defaultValue);
Run Code Online (Sandbox Code Playgroud) 我正在使用FFMPEG将视频转换为.mp4,ogg,.webm,以便可以使用视频标记在所有支持HTML5的浏览器中查看.问题是我设法将视频转换为3种所需格式,但它没有在视频标签中显示视频,我得到的只是IE9:红十字,Firefox:灰十字,这可能是转换的问题或是否与我将它们添加到视频标记源的方式有关.这是我做的:
FFmpeg命令行:
ffmpeg -i test.mp4 test.mp4
ffmpeg -i test.mp4 test.ogg
ffmpeg -i test.mp4 test.webm
Run Code Online (Sandbox Code Playgroud)这是视频标记:
<video id="video" height="340" width="470" onplaying="PlayVideoFromVid('PAUSE')" onpause="PlayVideoFromVid('PLAY')" onended="ResetVideo()" preload="true" autobuffer="true" controls="true">
<source src="test.ogg" type="video/ogg"></source>
<source src="test.mp4" type="video/mp4"></source>
</video>
Run Code Online (Sandbox Code Playgroud)视频支持的Webconfig行:
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".ogg" mimeType="audio/ogg" />
<mimeMap fileExtension=".oga" mimeType="audio/ogg" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg" />
<mimeMap fileExtension=".webm" mimeType="video/webm" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)如果有人可以向我发送ffmpeg所需的参数以将视频转换为3种所需格式以及他们如何在视频标签中设置源以再次显示它们的示例,那将是很棒的.任何其他建议都很棒,比如在进行转换时如何设置质量等.
提前致谢.
在尝试将外键约束添加到两个非常大的表时,我得到了错误.
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)
这通常是由于主表中的某些数据不存在于外表中,通常我检查已知的异常,如空值,超出范围值等,一旦这些被处理,我可以得到约束满足.不过这次问题更加微妙.
我想知道有没有办法查询导致约束失败的所有行?
几天前我问过这个问题,没有人回答.
我也问了它,forum.javascriptMVC.com现在我有了答案,但是我需要更多的想法.
题:
I read javascriptMVC's documents and I loved it.
But I don't know how to use it in a large scale project.
Run Code Online (Sandbox Code Playgroud)
我认为在服务器端需要一个MVC框架,或者可以提供很多帮助.我使用过服务器端PHP框架.
我很困惑,我JavascriptMVC项目的理解是,他们处理的浏览器捕捉事件客户端事件,执行AJAX请求,管理从服务器的响应/数据也显示他们对用户在图形界面.
我知道在PHP MVC项目中我们还有控制器(和操作),它们中的任何一个都是一个带有单个入口点的单独页面,我的观点是这些页面是完整的HTTP请求.
我认为这两个框架的组合将是一个形式单一或几个重文件(包括JS,CSS,IMGS等)的负载和诸如steal.js由另一个JavaScript libary管理.现在,用户可以使用网站,并导致运行可能会在UI改变的东西或导致AJAX请求,如雅虎邮箱,其中大多数事情发生JS功能的操作(如事件)工作一个页面.
那么这将如何影响PHP中控制器和动作的设计?我的意思是通常在PHP MVC框架中,很多控制器和动作意味着很多页面.我认为,由于AJAX,控制器和动作的数量实际上应该更少.我还认为,由于JMVC,大多数控制器(和操作)应该转向AJAX响应器,但是在这种情况下如何处理布局和视图?
最后
我创建了一个包含2个选项的选项列表:是和否如下所示
<?php echo $form->radioButtonList($model,'active', array(1=>'Yes', 0=>'No'), array('separator'=>"" )); ?>
Run Code Online (Sandbox Code Playgroud)
如何将选项1设置为默认选择?
如果你说了以下控制器结构
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
/**
* Test controller
*/
class TestController extends Controller
{
public function actionMyaction(){
...
//action logic
}
public function actionMyAction(){
...
//action logic
}
}
Run Code Online (Sandbox Code Playgroud)
可以使用路径访问第一个路径 example.com/test/myaction
每个Yii 1.x逻辑的第二个路由应该可以从example.com/test/myAction
Yii2.x中的路径访问,路由使用带连字符的结构,并且只能从example.com/test/my-action
无论如何在Yii2中使用camelCase结构启用路由,最好不要使用路由类扩展?
这很重要,因为它打破了所有链接(当然是互联网上的所有链接)向后兼容性,因此即使代码被完全重写,Yii1.x应用也永远无法迁移到Yii2.x. 这种变化的原因是什么?
我有一项任务,将大量视频转换为ogg,webm和mp4,用于不同的分辨率和移动等,我正在考虑使用ffmpeg运行转码作业队列或使用弹性转码器.(背景信息:源文件已在S3上,Web应用程序已完全集成到AWS SDK中,文件每天都会添加,不需要实时转换)
我知道使用EC2和ffmpeg将涉及一些开发时间和精力,而不是仅使用transcorder API.但如果节省成本......
因此我有两个问题
1)AWS称费用约为每分钟0.015美元(SD).我的问题是,每个输出文件是单独收费的.文件称,他们为同一份工作支持多达30项产出.但不清楚每种输出格式的每分钟工作时间还是每分钟(30种输出格式的视频每分钟0.45美元)?
2)在这个用例中是否有任何人使用EC2和ffmpeg的经验?这比便宜的便宜吗?
上次我开发了这种性质的东西时,我没有考虑到EC2和I/O的I/O成本,最终成本高于实例本身.我可以做任何代码优化,以使其更便宜吗?(除了使用现货实例,更便宜的地区等).
Yii2 ActiveRecord有一种方法可以自动将表单数据加载到模型中load() ,因为它可以安全地使用数据加载模型,但是我无法找到卸载所有属性模型的等效方法.
即是否有一种方法可以取消Yii2中模型的所有属性,就像unSetAttributes()Yii 1.x中的方法一样?
目前,唯一的方法似乎是
$model->setAttributes(['attribute1'=>NULL,'attribute2' => NULL ... ]);
Run Code Online (Sandbox Code Playgroud)
要么
foreach ($model->attributes as $attribute) {
$model->$attribute = NULL;
}
Run Code Online (Sandbox Code Playgroud)
编辑:为了回应Samuel Liew的回答澄清,虽然在这一点上我只是想通过重新启动模型来取消我可以做的所有属性,我还想控制哪些属性被重置,这unSetAttributes提供了
许多jsonb / json函数期望列的所有值要么是json数组类型(如jsonb_array_length),要么仅是json对象类型(如jsonb_build_oject)。
数据库中有一些jsonb列,其中包含数组和对象根的混合,是否有任何简单的方法可以过滤掉数组和对象,以便查询
SELECT DISTINCT jsonb_object_keys(my_column) FROM my_table;
cannot call jsonb_object_keys on an array
Run Code Online (Sandbox Code Playgroud)
要么
SELECT my_column FROM my_table WHERE jsonb_array_length(column) > 0;
cannot get array length of a non-array
Run Code Online (Sandbox Code Playgroud) yii ×5
yii2 ×4
php ×3
activerecord ×2
html5 ×2
sql ×2
video ×2
ajax ×1
encoding ×1
ffmpeg ×1
foreign-keys ×1
javascript ×1
jsonb ×1
mysql ×1
postgresql ×1
url-routing ×1