Wie, um einen Anker in CodeIgniter, wo Sie eine variable ändern möchten, die bereits in der URI?

Normalerweise würde ich nur mit URL-GET-Parameter, aber CodeIgniter scheint nicht zu mögen und keiner der URL-helper-Funktionen sind speziell für Sie, so dass ich versucht bin zu tun, das die "CodeIgniter Weg".

Ich würde gern eine Seite, wo das Modell kann, akzeptieren eine Reihe von verschiedenen URI-Parameter, keine unbedingt vorhanden ist, und keiner sein zu müssen in einer bestimmten Reihenfolge, viel wie eine normale URL-query-string mit get-Parametern.

Sagen wir, ich habe die folgende url:

http://example.com/site/data/name/joe/

Hier nicht inklusive controller oder die Methode gäbe es einen parameter:

$params = $this->uri->uri_to_assoc(1);
print_r($params);
//output
array( [name] => [joe] )

Wenn ich wollte 'joe' ändern zu 'ray', ich könnte dies tun:

echo anchor('name/ray');

Einfach genug, aber was, wenn es mehr Parameter und die position der Parameter ändern? Wie:

http://example.com/site/data/town/losangeles/name/joe/
http://example.com/site/data/age/21/name/joe/town/seattle

Gibt es eine Möglichkeit, nehmen Sie einfach das URL ein und Ausgabe, die es nur mit dem parameter 'name' geändert?

Edit: Als pro landons Rat, den ich nahm ihm das Skript und legen Sie es als eine url-helper-Funktion durch das anlegen der Datei:

application/helpers/MY_url_helper.php

Im Grunde schrieb ich die Funktion current_url() Optional akzeptieren ein array von Parametern, die ersetzt werden, die in die aktuelle URI. Wenn Sie nicht das array übergeben die Funktion arbeitet, als ursprünglich vorgesehen:

function current_url($vars = NULL)
{
    $CI =& get_instance();

    if ( ! is_array($vars))
    {
        return $CI->config->site_url($CI->uri->uri_string());
    }
    else
    {
        $start_index = 1;

        $params = $CI->uri->uri_to_assoc($start_index);

        foreach ($vars as $key => $value)
        {
            $params[$key] = $value;
        }

        $new_uri = $CI->uri->assoc_to_uri($params);
        return $CI->config->site_url($new_uri);
    }
}

Funktioniert es. Ich denke, die Quintessenz ist, ich weiß nicht, wie die 'CodeIgniter Weg' und ich suchen mixing-segment, basierend URL ' s mit Abfragezeichenfolgen oder anderen Frameworks zusammen.

InformationsquelleAutor jcroll | 2012-03-23
Schreibe einen Kommentar