小编Wil*_*ilt的帖子

如何在zendframework2中使用partial

在ZF1中,我们在layout.phtml文件中使用partial

$this->partial('header.phtml', array('vr' => 'zf2'));
Run Code Online (Sandbox Code Playgroud)

我们如何在ZF2中做同样的事情?

php partials view-helpers zend-framework2

5
推荐指数
2
解决办法
1万
查看次数

ZF2 - 如何更改错误/ 404响应页面?不只是模板,而是设置新的ViewModel

默认情况下,页面在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

5
推荐指数
2
解决办法
1万
查看次数

使用JCrop和php中的会话一次裁剪多个图像

我有一个图像裁剪脚本,使用Jquery Jcrop插件一次裁剪一个图像.现在我想上传更多图像并使用for循环逐个裁剪它们.

做这个的最好方式是什么?

我将输入字段设置为多个,因此可以上传多个.

编辑:

我editted下面有我的代码$maxcount.而且我认为我做错了.我如何解决它,所以当我点击裁剪时,它会在每个其他之后裁剪它们.

这是我的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)

谢谢!

php jquery image crop jcrop

5
推荐指数
1
解决办法
2846
查看次数

将结果限制在Apigility中

我用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行,仍然是分页?

php pagination zend-framework2 apigility

5
推荐指数
1
解决办法
1577
查看次数

如何在不同的有界上下文中将学说实体拆分为更多的域实体?

我正在尝试DDD(域驱动设计)领域的第一步.我喜欢明智的规则,你应该将你的实体分成许多较小的,特定于上下文的实体(例如,User实体往往在每个非ddd或设计不佳的应用程序中都会过度生长).但是在使用Doctrine的php中如何(有效地)实现它的常见选项是什么?

假设我有两个有界的上下文:StoreInvoicing

它们中的每一个都有两个域实体:对于Store BC而言FirstTimeCustomer,RecurrentCustomer 对于Invoicing BC它是VatCustomerNonVatCustomer

现在,在我的基础设施层中,我希望它们全部保存在同一个(至少是基础)表中,以便能够通用UserId(Uuid)引用它们.对我来说问题是,如何做到这一点,所以我可以利用我的存储库实现中的doctrine自动化.

我读到了可能是解决方案的单表继承或类表继承,但是:

我需要能够使用User相同的Uuid,因为它在每个上下文中都是不同的类型.

我需要能够在商店BC中返回一些AbstractStoreCustomeraka FirstTimeCustomerRecurrentCustomeron $storeCustomerRepository->find(1);.

并在发票BC中返回一些AbstractInvoicingCustomeraka VatCustomerNonVatCustomeron $invoicingCustomerRepository->find(1);.

但似乎我被迫在这里选择BC我想要的实体的特定身份.所以在DDD的背景下对我来说根本没有意义.

我还阅读了Mapped Superclasses,它看起来也像是选项,但是:

这意味着根本不可能在映射的超类上进行一对多关联.

而且我需要Customer与订单有关系,这两个实体应该是可用的(也可能不希望它可用于User新BC中的一些新类型的实体).

我得出结论,我应该怀疑我错过了什么,是吗?我应该如何将上帝实体打造成更小的特定背景?

php domain-driven-design doctrine-orm

5
推荐指数
1
解决办法
830
查看次数

如何从编译器功能指令访问作用域?

我有一个基于作为属性发送的数组构建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)

谢谢

javascript compiler-directives angularjs-directive

4
推荐指数
1
解决办法
7014
查看次数

如何在编辑表单中使用DoctrineModule\Validator\NoObjectExists - Zend Framework 2和Doctrine 2

DoctrineModule\Validator\NoObjectExists在用于编辑的Zend表单中使用验证器的最有效方法是什么?因为当我使用相同的Form保存编辑的值时,这将验证Object存在并且flags表单无效.

php validation zend-form doctrine-orm zend-framework2

4
推荐指数
1
解决办法
4732
查看次数

涉及 Three.js 点云中各个点的光线投射

我有一个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)

javascript three.js

4
推荐指数
1
解决办法
3753
查看次数

从ZF2中的控制器调用另一个控制器操作的最佳实践

调用另一个控制器的动作的最佳方法是什么?

我在想不同的选择:

  1. 使用转发插件
  2. 将第二个控制器设置为第一个控制器中的依赖项

我认为第一个选项可行,但我想知道第二个选项是否有意义.在这种情况下,

  1. 如何获得控制器依赖?

我试图使用服务管理器来获取它,但它不存在.我已经尝试为控制器创建一个Factory,并从Controller Manager获取另一个控制器,当您实现FactoryInterface时,它将作为参数传递给createService方法.但它说没有控制器在那里.存在与控制器不同的定位器,而不是与服务定位器相同的定位器?

  1. 具有依赖性并将被调用的控制器必须扩展或实现任何特定的类或接口?

php zend-framework2

4
推荐指数
1
解决办法
2413
查看次数

应用转换时,ThreeJS bufferGeometry位置属性未更新

我使用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)

在渲染循环中,但是没有运气,因为我还没有明确更新顶点。

javascript three.js buffer-geometry

4
推荐指数
1
解决办法
2113
查看次数