Welcome Guest, Not a member yet? Register   Sign In
Route with optional param is not working
#1

hello,
So I have routes like
PHP Code:
$route["admin/product/image/(:num)"]["delete"] = "product/deleteImage/$1"
so accessing
http://localhost/PROJECT/admin/product/image
as a delete request should work. But it leads to 404. I have to pass the last param to make it work.

any help is appreciated.
Harpreet Bhatia
Web Developer / Analyst
Technical Reviewer - "Codeigniter 2 Cookbook"

Reply
#2

this doesn't make any sense. are you really saying this is your url?
http://localhost/PROJECT/admin/product/image
how could that be a delete request when you are not specifying an id (number) to delete?
Reply
#3

In your method definition, provide a null possibility for the argument and it should work for you:

Code:
function deleteImage($id = null)
{
    . . .
}
Reply
#4

(06-07-2016, 01:33 PM)cartalot Wrote: this doesn't make any sense. are you really saying this is your url?
http://localhost/PROJECT/admin/product/image
how could that be a delete request when you are not specifying an id (number) to delete?

The delete request also takes a URL to delete temp images that don't have ID yet.
BTW the solution was
PHP Code:
$route["admin/product/image/?(:num)?"]["delete"] = "product/deleteImage/$1"

to make parameter optional.
even though the functions is defined as
PHP Code:
public function deleteImage($imageId=0) {
        
$url $this->sanitize->removeTags()->sanitize($this->commonlib->request("url"));
        if(!empty(
$url)){
            @
unlink($this->config->item("temp_upload_dir").$url);
            
$this->commonlib->sendResponse(200"Product Image Removed");
        }
        else{
            
        }
    } 
Harpreet Bhatia
Web Developer / Analyst
Technical Reviewer - "Codeigniter 2 Cookbook"

Reply
#5

(06-07-2016, 06:07 PM)kilishan Wrote: In your method definition, provide a null possibility for the argument and it should work for you:

Code:
function deleteImage($id = null)
{
   . . .
}

I too thought that would work but it does not and  am not sure why
another example with screenshot. Let me know if i am doing anything wrong.
   
   
   
   
Harpreet Bhatia
Web Developer / Analyst
Technical Reviewer - "Codeigniter 2 Cookbook"

Reply




Theme © iAndrew 2016 - Forum software by © MyBB