[CodeIgniter] function met argument

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Hi Tweakers,

Ik ben best bekend met CodeIgniter en ben nu bezig daar een website in/op te bouwen. Nu heb ik in een controller een function, laten we zeggen :
code:
1
2
3
function index($var1){

}


Dit werkt prima door te surfen naar de url http://website/index.php/controller/VAR1
Maar, als ik nu var1 weglaat in de URL begint de applicatie te zeuren dat hij een missing argument in de functie heeft. Logisch. Maar hoe voorkom ik dat? Het zal retesimpel zijn, maar ik zie het even niet :)

Hopelijk kan iemand me even de goede richting in schoppen ! :)

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • 0 Henk 'm!

  • Bjk
  • Registratie: Augustus 2002
  • Laatst online: 07:35

Bjk

Ik dacht aan:

PHP:
1
2
3
function index($var1 = null){

}


Of in de configuration van CodeIgniter de omgeving op production zetten.

Acties:
  • 0 Henk 'm!

  • XyritZz
  • Registratie: Augustus 2003
  • Laatst online: 29-08 11:46
code:
1
2
3
function index($var1=null){

}


Dit zal 'm zijn denk ik :)


Edit: net te laat :)... achja iets met great minds.

[ Voor 26% gewijzigd door XyritZz op 27-01-2012 10:48 ]

I think there is a world market for maybe five computers. - Thomas Watson (1874-1956), Directeur van IBM (1943)


Acties:
  • 0 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
XyritZz schreef op vrijdag 27 januari 2012 @ 10:47:
code:
1
2
3
function index($var1=null){

}


Dit zal 'm zijn denk ik :)
Maar is $var1 dan niet altijd null?

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • 0 Henk 'm!

  • XyritZz
  • Registratie: Augustus 2003
  • Laatst online: 29-08 11:46
DennusB schreef op vrijdag 27 januari 2012 @ 10:48:
[...]


Maar is $var1 dan niet altijd null?
Nee, die $var1=null zorgt er voor dat je een default waarde hebt.

Het is dus zo:

var1 meegeven in URL: De waarde in de URL zal in $var1 in de functie zitten.
var1 niet meegeven in URL: De default waarde wordt gebruikt, en $var1 zal null zijn.

I think there is a world market for maybe five computers. - Thomas Watson (1874-1956), Directeur van IBM (1943)


Acties:
  • 0 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
XyritZz schreef op vrijdag 27 januari 2012 @ 10:49:
[...]


Nee, die $var1=null zorgt er voor dat je een default waarde hebt.

Het is dus zo:

var1 meegeven in URL: De waarde in de URL zal in $var1 in de functie zitten.
var1 niet meegeven in URL: De default waarde wordt gebruikt, en $var1 zal null zijn.
Kijk, dat klinkt goed :) Gaan we zo eens even testen! Bedankt alvast!

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • 0 Henk 'm!

  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 12-09 21:54
Dat doe ik ook structureel om een custom foutmelding te maken in CI of andere frameworks.

Acties:
  • 0 Henk 'm!

  • XyritZz
  • Registratie: Augustus 2003
  • Laatst online: 29-08 11:46
PatrickH89 schreef op vrijdag 27 januari 2012 @ 10:58:
Dat doe ik ook structureel om een custom foutmelding te maken in CI of andere frameworks.
Persoonlijk los ik dit soort dingen liever met routing op, maar het zal ook deels afhankelijk zijn van de applicatie waarin je het gebruikt.

Voorbeeld een applicatie met producten.

Routes configuratie:
PHP:
1
2
$route['producten'] = 'product';
$route['producten/(:any)'] = "product/show/$1";


De bovenste route wordt altijd gebruikt wanneer ik de variabele leeg laat, en zal geforward worden naar de index actie van de product controller.

PHP:
1
2
3
4
public function index()
{
  // Toon producten overzicht.
}


Als de variabele in de URL wel is ingevuld zal geforward worden naar de show actie van de product controller, en de show actie heeft verplicht een parameter.

PHP:
1
2
3
4
public function show($product)
{
  // Toon product, of 404 als niet gevonden.
}


Hier misbruik van maken is lastig, als een bezoeker de variabele weg laat gaat de applicatie naar index, als de bezoeker de variabele wel invult krijgt deze netjes het product te zien en als er onzin als variabele wordt meegegeven regelt de show actie in de productcontroller dat er een 404 getoond wordt.

I think there is a world market for maybe five computers. - Thomas Watson (1874-1956), Directeur van IBM (1943)


Acties:
  • 0 Henk 'm!

  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 12-09 21:54
Eens, ik was niet op het idee gekomen om dit hiervoor te gebruiken. Dank!
Pagina: 1