Cakephp路由生成URL参数

时间:2015-07-13 14:11:05

标签: cakephp cakephp-2.0

Cakephp 2.0的简单问题。

我想设置一个路由规则:

www.abc.com/z/abc123

将解析为(包括网址参数)的完整网址

www.abc.com/bookings/bookingref/?ref=abc123

如果预订是控制器,则bookingref就是行动。

有人可以在routes.php中教我需要写什么吗?

凯文

3 个答案:

答案 0 :(得分:0)

在routes.php中:

Router::connect('/bookingref/', array('controller' => 'bookings', 'action' => 'bookingref'));

在控制器中:

public function bookingref(){


}

所以你的功能后应该有一个视图名称。即bookingref.ctp

答案 1 :(得分:0)

这就是我实施解决方案的方式:

在Config / routes.php中添加:

Router::connect('/z/:reference',
    ['controller' => 'bookings', 'action' => 'bookingref'],
    [
        'pass' => ['reference'],// Passed to corresponding function argument (order matters if 2 or more)
        'reference' => '[a-z0-9]+'// RegExp validation if you need it
    ]
 );

在BookingsController中使用:

public function bookingref($reference = null)
{
...
}

答案 2 :(得分:0)

不幸的是, @IBAction func save() { let content = self.foodMenu?["content"].string let urlString = self.foodMenu?["thumbnail_images"]["full"]["url"] let urlshare = NSURL(string: urlString!.stringValue) let imageData = NSData(contentsOfURL: urlshare!) let images = UIImage(data: imageData!) dispatch_async(dispatch_get_main_queue(), { if let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext { self.foodClass = NSEntityDescription.insertNewObjectForEntityForName("Foods", inManagedObjectContext: managedObjectContext) as! Foods self.foodClass.content = content self.foodClass.image = UIImageJPEGRepresentation(images, 1) var e: NSError? if managedObjectContext.save(&e) != true { println("insert error: \(e!.localizedDescription)") return } } 无法重定向到包含变量的基于字符串的网址。 Progredi提到的基于控制器的方法是你最好的选择。