小编Jor*_*.it的帖子

学说错误:"未能打开''/tmp/__CG__Source.php'"

我正在尝试将我的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脚本的第一行: …

php symfony doctrine-orm

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

使用多个字段构建GroupBy表达式树

要动态生成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不会给出任何异常,它只是不对任何内容进行分组并返回所有元素.

我在这做错了什么?任何帮助,将不胜感激.提前致谢.

c# linq lambda expression-trees

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

标签 统计

c# ×1

doctrine-orm ×1

expression-trees ×1

lambda ×1

linq ×1

php ×1

symfony ×1