předání nesprávného parametru do metody

jik
Člen | 146
+
0
-

Zdravím,
volám metodu a najednou zjišťuji, že má jiný parametr, než jí předávám:

public function injectDruhkoef (\App\Model\Druhkoef $druhkoef) {
	$this->druhkoefRepos = $druhkoef;
}
...
dump("getkoef par1: $par");
$a_druhkoef = $this->druhkoefRepos->getDruh($this->subjcasPub->rok_id, $this->subjectPub->stat_id, $par);
dump("getkoef par2: $par");die;

model:

public function getRok ($rok) {
	return $this->findBy(array('rok_id'=>$rok))->order('id');
}
public function getDruh ($rok, $druh) {
	dump("getkoef metoda: $druh");
	return $this->getRok($rok)->where("druhkoef ~ '$druh'");
}

v $par mám ‚6o4‘, ale podle laděnky je metodě předán parametr ‚1‘:

SELECT "id"
FROM "druhkoef"
WHERE ("rok_id" = 10) AND ("druhkoef" ~ '1')
ORDER BY "id"

Nevíte někdo, kde bych mohla být chyba?

CZechBoY
Člen | 3608
+
0
-

Dumpuješ špatnou proměnnou. Voláš metodu se 3 parametry a definice má jen 2 parametry.

btw. máš tam možnou sqlinjection, použij otazník

where("druhkoef ~ ?", $druh);
jik
Člen | 146
+
0
-

Grrr… Já tam už jakou dobu hledám všechno možné…
Děkuji.

CZechBoY
Člen | 3608
+
0
-

btw kdybys měl chvilku času tak doporučuju zařadit do své testovací pipeline phpstan. Už od levelu 2 dokáže najít tvůj problém.