2012-07-21 57 views
0

如何创建和匹配来自不同类别的字段的路由? 这可能吗?有没有自定义路由类?Symfony 1.4路由:来自不同类别的字段

例如,我有以下两类:

File: 
    columns: 
    name: { type: string(255), unique: true, notnull: true } 
    ... 

Link: 
    columns: 
    file_id: { type: bigint, notnull: true } 
    ticket: { type: string(64), notnull: true } 
    relations: 
    File: 
     local: file_id 
     foreign: id 
     foreignAlias: links 
    ... 

现在假设我要创建这样一个路径:mysite.com/:ticket/:name 正如你所看到的,ticketLink表和name的字段的字段File表。有什么方法可以在symfony 1.4中创建这样的链接?

第一个解决方案是更改File表的主键并将其设置为它的名称。我知道这一点,但我想知道是否有办法通过路由来处理这个问题。

我的目标是当我调用getObject方法时,它返回一个带有发送票据的Link对象,但是也应该检查是否存在与已发送文件名的关系。

回答

2

IIRC你可以做这样的事情:

my_route: 
    url: /:ticket/:name 
    class: sfDoctrineRoute 
    param: { module: yourModule, action: yourAction } 
    options: { type: object, model: Link, method: findLinkWithSendTicket } 

然后symfony中应该调用LinkTable::findLinkWithSendTicket方法,并传递给它的参数,所以你可以用它来获取对象。

链接可能会有所帮助: