我正在尝试将我的PHP应用程序迁移到Ubuntu服务器,但没有成功.任何帮助,将不胜感激.
首先,我按照Doctrine 入门手册的第一部分(直到"生成数据库模式")将Doctrine成功安装到/ jorrit/myapp中.其次,我将我的PHP脚本(使用Doctrine)放在文件夹/ jorrit/myapp中.
当我尝试在CLI中运行我的PHP脚本时,收到以下错误消息:
PHP警告:require(/ tmp/__ CG__Source.php):无法打开流:第200行/jorrit/myapp/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php中没有此类文件或目录
PHP致命错误:require():在/ jorrit/myapp/vendor/doctrine /中打开所需的'/tmp/__CG__Source.php'(include_path ='.:/ usr/share/php:/ usr/share/pear')失败第200行的common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php
Bootstrap.php看起来像这样:
<?php
// bootstrap.php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
require_once "vendor/autoload.php";
// Create a simple "default" Doctrine ORM configuration for Annotations
$isDevMode = false;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);
// the connection configuration
$dbParams = array(
        'driver'   => 'pdo_mysql',
        'host'     => 'xx',
        'user'     => 'xx',
        'password' => 'xx',
        'dbname'   => 'xx',
        'profiler' => 'false'
);
// obtaining the entity manager
$entityManager = EntityManager::create($dbParams, $config);
?>
Run Code Online (Sandbox Code Playgroud)
我的PHP脚本的第一行: …
要动态生成GroupBy表达式,我正在尝试构建Linq表达式树.要分组的字段是动态的,可以在数量上有所不同.
我用这个代码:
string[] fields = {"Name", "Test_Result"};
Type studentType = typeof(Student);
var itemParam = Expression.Parameter(studentType, "x");
var addMethod = typeof(Dictionary<string, object>).GetMethod(
    "Add", new[] { typeof(string), typeof(object) });
var selector = Expression.ListInit(
        Expression.New(typeof(Dictionary<string,object>)),
        fields.Select(field => Expression.ElementInit(addMethod,
            Expression.Constant(field),
            Expression.Convert(
                Expression.PropertyOrField(itemParam, field),
                typeof(object)
            )
        )));
var lambda = Expression.Lambda<Func<Student, Dictionary<string,object>>>(
    selector, itemParam);
Run Code Online (Sandbox Code Playgroud)
代码是从这篇文章复制而来的(感谢Mark Gravel!).
最终确定......
var currentItemFields = students.Select(lambda.Compile());
Run Code Online (Sandbox Code Playgroud)
......我预计我可以把它改成......
var currentItemFields = students.GroupBy(lambda.Compile());
Run Code Online (Sandbox Code Playgroud)
我认为lambda表达只不过是......
var currentItemFields = students.GroupBy(o => new { o.Name, o.Test_Result });
Run Code Online (Sandbox Code Playgroud)
......但不幸的是,情况似乎并非如此.具有动态lambda的GroupBy不会给出任何异常,它只是不对任何内容进行分组并返回所有元素.
我在这做错了什么?任何帮助,将不胜感激.提前致谢.