我的页面中有一个子导航,在公共主视图下方显示一些子视图.我想通过一个对象传递给子视图,<router-outlet>这样我就可以在主组件中检索一次数据,然后与子组件共享它.
注意:如果我<one></one>在main.html中包含该指令,它可以工作,但这不是我想要的行为.
主要观点:
<h1>Details</h1>
<a [router-link]="['./sub1']">One</a> |
<a [router-link]="['./sub2']">Two</a> |
<a [router-link]="['./sub3']">Three</a>
<hr/>
<router-outlet [data]="maindata"></router-outlet>
Run Code Online (Sandbox Code Playgroud)
子视图1:
<h2>{{ data.name }}</h2>
...
Run Code Online (Sandbox Code Playgroud)
主要观点:
@Component({
selector: 'main-detail',
directives: [ROUTER_DIRECTIVES],
templateUrl: './main.html'
})
@RouteConfig([
{ path: '/', redirectTo: '/one' },
{ path: '/one', as: 'One', component: OneComponent },
{ path: '/two', as: 'Two', component: TwoComponent },
{ path: '/three', as: 'Three', component: ThreeComponent }
])
export class MainComponent {
maindata: Object = {name:'jim'};
}
Run Code Online (Sandbox Code Playgroud)
子视图1:
@Component({
selector: 'one', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Doctrine从本机查询返回单行.这是我的代码:
$rsm = new ResultSetMapping;
$rsm->addEntityResult('VNNCoreBundle:Player', 'p');
$rsm->addFieldResult('p', 'player_id', 'id');
$sql = "
SELECT player_id
FROM players p
WHERE CONCAT(p.first_name, ' ', p.last_name) = ?
";
$query = $this->getEntityManager()->createNativeQuery($sql, $rsm);
$query->setParameter(1, $name);
$players = $query->getResult();
Run Code Online (Sandbox Code Playgroud)
最后一行返回一个玩家列表,但我只想要一个结果.我怎么做?
这个问题需要一些假设的背景.让我们考虑一个employee有列的表name,date_of_birth,title,salary使用MySQL作为RDBMS.因为如果任何一个人的姓名和出生日期与另一个人相同,那么根据定义,他们是同一个人(除非我们有两个人在1809年2月12日出生的亚伯拉罕·林肯出生的惊人巧合),我们将把独特的按键name和date_of_birth,意思是"不存储同一个人两次." 现在考虑这些数据:
id name date_of_birth title salary
1 John Smith 1960-10-02 President 500,000
2 Jane Doe 1982-05-05 Accountant 80,000
3 Jim Johnson NULL Office Manager 40,000
4 Tim Smith 1899-04-11 Janitor 95,000
Run Code Online (Sandbox Code Playgroud)
如果我现在尝试运行以下语句,它应该会失败:
INSERT INTO employee (name, date_of_birth, title, salary)
VALUES ('Tim Smith', '1899-04-11', 'Janitor', '95,000')
Run Code Online (Sandbox Code Playgroud)
如果我尝试这个,它会成功:
INSERT INTO employee (name, title, salary)
VALUES ('Jim Johnson', 'Office Manager', '40,000')
Run Code Online (Sandbox Code Playgroud)
现在我的数据将如下所示:
id name date_of_birth title salary
1 …Run Code Online (Sandbox Code Playgroud) 我知道准备好的语句,但如果我使用原始SQL,ActiveRecord是否有办法手动转义值?
像这样的东西会很好:
self.escape("O'Malley") # O\'Malley
Run Code Online (Sandbox Code Playgroud) from account_import.models import ImportFile每次打开我的Django shell时,我都厌倦了打字.每当我启动shell时,有没有办法自动运行此命令?
ActiveRecord是否具有内置的upsert功能?我知道我可以自己写,但我显然不想,如果这样的事情已经存在.
就Angular 2路由而言,我大多能够找到整个应用程序中只有一个路由文件的场景示例.
我想看一个不仅使用一个路由文件,而且使用主路由文件,然后至少使用一个功能模块路由文件的示例.
编辑:我意识到有一个类似的问题已经被问及并回答了.有两个原因我没有找到一个特别有用的:
1)问题非常具体针对用户的情况,因此存在很多"噪音".我要求的只是一个单独的功能模块路由示例.
2)该问题的答案似乎没有解决如何为功能模块创建路由文件,然后将其绑定回应用程序的主路由.也许它就在那里,我只是错过了它,但我没有看到它.
鉴于:
require 'rubygems'
require 'nokogiri'
value = Nokogiri::HTML.parse(<<-HTML_END)
"<html>
<body>
<p id='para-1'>A</p>
<div class='block' id='X1'>
<h1>Foo</h1>
<p id='para-2'>B</p>
</div>
<p id='para-3'>C</p>
<h2>Bar</h2>
<p id='para-4'>D</p>
<p id='para-5'>E</p>
<div class='block' id='X2'>
<p id='para-6'>F</p>
</div>
</body>
</html>"
HTML_END
Run Code Online (Sandbox Code Playgroud)
我想做一些像我在Hpricot中可以做的事情:
divs = value.search('//div[@id^="para-"]')
Run Code Online (Sandbox Code Playgroud)
我有一个用PHP/symfony编写的项目,它使用了45个表.我正在将它移植到Python/Django.
多年来我一直认为你应该将你的项目分成一堆小文件而不是一些大文件.据我所知,相信并不奇怪.在Rails和symfony中,有一个单模型的文件约定.然而,在Django中,似乎大多数开发人员将每个应用程序的模型都放在一个文件中.
如果你的应用程序足够小,这对我来说很有意义.但是,对于大型应用程序,我没有任何意义,而且我拥有的是至少一个大型应用程序.
在我的项目使用的45个表中,35个密切相关.我有一个从CSV文件导入数据的脚本.对于每个CSV文件中的每一行,我一次性将50-80个数据保存到30-35个不同的表中.
也许我只是想错误的方式,但是当我的项目几乎所有表格都有着千丝万缕的联系时,将我的项目划分为6或7个不同的应用程序似乎非常奇怪.当我触摸一张桌子时,我触摸了所有35张桌子.划分必须是任意的.那会是什么意思?
请原谅我,如果我有偏见,因为我当然有偏见.我在symfony中没有这个问题,我不会在Rails中使用它.(因为GeoDjango和Python的GIS功能,我选择了Django.)
我该怎么办?
我的公司每月都会获得一组包含银行帐户信息的CSV文件,我需要将其导入数据库.其中一些文件可能非常大.例如,一个是大约33MB和大约65,000行.
现在我有一个symfony/Doctrine应用程序(PHP),它读取这些CSV文件并将它们导入数据库.我的数据库有大约35个不同的表,在导入过程中,我将这些行拆分为组成对象并将它们插入到数据库中.这一切都很漂亮,除了它很慢(每行大约需要四分之一秒)并且它使用了大量的内存.
内存使用非常糟糕,我必须拆分我的CSV文件.一个20,000行的文件几乎没有进入.当它接近结束时,我的内存使用率为95%.导入该65,000行文件根本不可能.
我发现symfony是构建应用程序的特殊框架,我通常不会考虑使用其他任何东西,但在这种情况下,我愿意以性能的名义将所有的先入之见抛到窗外.我没有承诺任何特定的语言,DBMS或任何东西.
Stack Overflow不喜欢主观问题,因此我将尽量使其成为非主观的:对于那些不仅仅有意见但有经验导入大型CSV文件的人,您使用了哪些工具/实践过去那已经成功了吗?
例如,您是否只使用Django的ORM/OOP并且您没有遇到任何问题?或者您是否将整个CSV文件读入内存并准备一些大量的INSERT声明?
同样,我不仅仅是一个意见,而是一些过去实际上对你有用的东西.
编辑:我不只是将85列CSV电子表格导入一个85列数据库表.我正在将数据规范化并将其放入几十个不同的表中.出于这个原因,我不能只使用LOAD DATA INFILE(我正在使用MySQL)或任何其他只读取CSV文件的DBMS功能.
此外,我不能使用任何Microsoft特定的解决方案.