在ZF1中,我们在layout.phtml文件中使用partial
$this->partial('header.phtml', array('vr' => 'zf2'));
Run Code Online (Sandbox Code Playgroud)
我们如何在ZF2中做同样的事情?
默认情况下,页面在Applicationmodule.config数组中设置如下:
'template_map' => array(
'error/404' => __DIR__ . '/../view/error/404.phtml'
Run Code Online (Sandbox Code Playgroud)
我想改变页面.我想要新ViewModel的变量充满变数.这意味着仅仅更改模板是不够的:
'error/404' => __DIR__ . '/../view/error/my_new_404_template.phtml'
Run Code Online (Sandbox Code Playgroud)
但我无法理解如何制作它.我无法看到请求的方式'error/404'.
如何ViewModel为它创造新的?
如何将变量附加到它?
如何通过路线来'error/404'改变它?
例如,我有这样的'error/404'页面方法:
public function pageNotFoundAction() {
$view = new ViewModel();
$view->setTemplate('error/404'); // set my template
$sm = $this->getServiceLocator()->get('SessionManager');
$cont = new Container('SomeNamespace', $sm);
$view->var1 = $cont->offsetGet('someValue1'); // the "error/404" template
$view->var2 = $cont->offsetGet('someValue2'); // is full of variables
$view->var3 = $cont->offsetGet('someValue3');
$view->var4 = "One more view variable";
// And now …Run Code Online (Sandbox Code Playgroud) php zend-framework-mvc zend-view http-status-code-404 zend-framework2
我有一个图像裁剪脚本,使用Jquery Jcrop插件一次裁剪一个图像.现在我想上传更多图像并使用for循环逐个裁剪它们.
做这个的最好方式是什么?
我将输入字段设置为多个,因此可以上传多个.
我editted下面有我的代码$max和count.而且我认为我做错了.我如何解决它,所以当我点击裁剪时,它会在每个其他之后裁剪它们.
这是我的uploaded.php:
<?php
session_start();
$max = count($_FILES['userfile']['name']);
for($i = 0; $i < $max; $i++){
$target = $_FILES['file'][$i];
}
$target = "data/uploads/";
$target = $target . basename( $_FILES['filename']['name']) ;
$_SESSION['target_path'] = $target;
$ok=1;
if(move_uploaded_file($_FILES['filename']['tmp_name'], $target))
{
echo "De afbeelding *". basename( $_FILES['filename']['name']). "* is geupload naar de map 'uploads'";
}
else
{
echo "Sorry, er is een probleem met het uploaden van de afbeelding.";
}
?>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我用Apigility创建了一个代码连接的API.现在我正在使用标准的创建存根.在我PostResource的方法中有一个叫做的方法fetchAll($params = array()).我为方法创建了代码,以便返回一组可分页的结果:
/** @var HydratorInterface $hydrator */
$hydrator = new \Zend\Stdlib\Hydrator\ClassMethods();
/** @var PostService $postService */
$postService = new PostService();
$posts = $postService->findAll(/* Limit, default 10 */);
$apiData = array();
foreach ($posts as $post) {
$apiData[] = $hydrator->extract($post);
}
return new Paginator(new ArrayAdapter($apiData));
Run Code Online (Sandbox Code Playgroud)
这到目前为止工作正常.如果我导航到API URL,我将获得json我的数据库数据的分页表示.如果我将我的API的页面大小设置为5.它将给我2页和5个结果.到现在为止还挺好.问题是,在每次调用(第1页或第2页)时,将从数据库中提取所有10个结果.它只返回一页5,但10水合等.
有没有办法使用限制,但也让Apigility或分页器知道,总共有多少结果,这样我将得到5行,仍然是分页?
我正在尝试DDD(域驱动设计)领域的第一步.我喜欢明智的规则,你应该将你的实体分成许多较小的,特定于上下文的实体(例如,User实体往往在每个非ddd或设计不佳的应用程序中都会过度生长).但是在使用Doctrine的php中如何(有效地)实现它的常见选项是什么?
假设我有两个有界的上下文:Store和Invoicing
它们中的每一个都有两个域实体:对于Store BC而言FirstTimeCustomer,RecurrentCustomer
对于Invoicing BC它是VatCustomer和NonVatCustomer
现在,在我的基础设施层中,我希望它们全部保存在同一个(至少是基础)表中,以便能够通用UserId(Uuid)引用它们.对我来说问题是,如何做到这一点,所以我可以利用我的存储库实现中的doctrine自动化.
我读到了可能是解决方案的单表继承或类表继承,但是:
我需要能够使用User相同的Uuid,因为它在每个上下文中都是不同的类型.
我需要能够在商店BC中返回一些AbstractStoreCustomeraka FirstTimeCustomer或RecurrentCustomeron $storeCustomerRepository->find(1);.
并在发票BC中返回一些AbstractInvoicingCustomeraka VatCustomer或NonVatCustomeron $invoicingCustomerRepository->find(1);.
但似乎我被迫在这里选择BC我想要的实体的特定身份.所以在DDD的背景下对我来说根本没有意义.
我还阅读了Mapped Superclasses,它看起来也像是选项,但是:
这意味着根本不可能在映射的超类上进行一对多关联.
而且我需要Customer与订单有关系,这两个实体应该是可用的(也可能不希望它可用于User新BC中的一些新类型的实体).
我得出结论,我应该怀疑我错过了什么,是吗?我应该如何将上帝实体打造成更小的特定背景?
我有一个基于作为属性发送的数组构建html的指令。我无法从指令的编译器功能访问它。它在链接函数内部工作,但是我需要在编译内部,否则新模板不会被编译。
代码是这样的:
<multirangeslider values="ranges" variances="['Master', 'master A', 'master B']"></multirangeslider>
Run Code Online (Sandbox Code Playgroud)
指示:
angular.module("vtApp.directives").
directive('multirangeslider', function ($parse, $timeout, $compile) {
return {
restrict: 'E',
replace: true,
scope: {
values: "=",
options: "=",
variances: "&"
},
compile: function (element, attrs) {
var htmlText, variances, values;
variances = eval(attrs.variances);
values = scope.ranges //scope is undefined
values = eval (attrs.variances) //returns string "ranges"
values = ??? ///what should I put here?
htmlText = '<div></div>';
element.replaceWith(htmlText);
return function (scope, element, attrs){
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢
DoctrineModule\Validator\NoObjectExists在用于编辑的Zend表单中使用验证器的最有效方法是什么?因为当我使用相同的Form保存编辑的值时,这将验证Object存在并且flags表单无效.
我有一个PointCloud显示多个点的对象。我希望能够在单击点周围绘制一个边界框。PointCloud不幸的是,如果可能的话,我似乎无法弄清楚如何访问 中的各个点。
这是我正在使用的光线投射代码......
window.addEventListener('dblclick', function (ev) {
var mouse = { x: 1, y: 1 };
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = -( event.clientY / window.innerHeight ) * 2 + 1;
var raycaster = new THREE.Raycaster();
raycaster.params.PointCloud.threshold = 15;
var vector = new THREE.Vector3(mouse.x, mouse.y, 0.5).unproject(camera);
raycaster.ray.set(camera.position, vector.sub(camera.position).normalize());
scene.updateMatrixWorld();
var intersects = raycaster.intersectObject(particles);
if (intersects.length > 0) {
console.log(intersects[0]);
var hex = 0x000000;
var bbox = new THREE.BoundingBoxHelper(intersects[0], hex); …Run Code Online (Sandbox Code Playgroud) 调用另一个控制器的动作的最佳方法是什么?
我在想不同的选择:
我认为第一个选项可行,但我想知道第二个选项是否有意义.在这种情况下,
我试图使用服务管理器来获取它,但它不存在.我已经尝试为控制器创建一个Factory,并从Controller Manager获取另一个控制器,当您实现FactoryInterface时,它将作为参数传递给createService方法.但它说没有控制器在那里.存在与控制器不同的定位器,而不是与服务定位器相同的定位器?
我使用STLLoader将stl加载到返回BufferGeometry的ThreeJS场景上。
然后我用
myMesh.position.set( x,y,z )
myMesh.rotation.setFromQuaternion ( quaternion , 'XYZ');
Run Code Online (Sandbox Code Playgroud)
平移几何。这有效地改变了
myMesh.position
myMesh.quaternion
Run Code Online (Sandbox Code Playgroud)
翻译正在现场进行,并且一切正常。我期望
myMesh.geometry.attributes.position.array
Run Code Online (Sandbox Code Playgroud)
翻译前后会有所不同-但仍然相同。我想在翻译后从buffergeometry中提取新的veritces。我试图打电话
myMesh.geometry.dynamic = true;
myMesh.geometry.attributes.position.needsUpdate = true;
Run Code Online (Sandbox Code Playgroud)
在渲染循环中,但是没有运气,因为我还没有明确更新顶点。
php ×7
javascript ×3
doctrine-orm ×2
three.js ×2
apigility ×1
crop ×1
image ×1
jcrop ×1
jquery ×1
pagination ×1
partials ×1
validation ×1
view-helpers ×1
zend-form ×1
zend-view ×1