Php Laravel вызывает функцию в той же модели

У меня есть модель с 2 функциями. Допустим, название модели Cars, Я пытаюсь вызвать одну функцию brand который возвращает массив, так что я могу использовать его внутри другого getBrand функция.

public static function getBrand($data) {
$brandVariable = $this->brand();
for ($i=1; $i < count($brandVariable ) ; $i++) {
//do something
}
}

public static function brand() {
$arrayValues = array(
1 => 'Brand A',
2 => 'Brand B',
);
return arrayValues;
}

Поскольку значения в brand функция, мне нужно передать его внутрь getBrand,

Я получаю ошибку в for петля. Я пробовал в другом файле (локальный PHP не Laravel), и он работает нормально. Но в Ларавеле это не дает ожидаемого результата.

2

Решение

использование Cars::brand потому что вы объявили функции как статические

public static function getBrand($data=null) {
$Cars = new Cars();
$brandVariable = $Cars::brand();
for ($i=1; $i < count($brandVariable ) ; $i++) {
//do something
}
}

Живая демоверсия: https://eval.in/856708

Или же

public static function getBrand($data=null) {
$brandVariable = Cars::brand();
for ($i=1; $i < count($brandVariable ) ; $i++) {
//do something
}
}

Живая демоверсия: https://eval.in/856712

6

Другие решения

Ты звонишь brand внутри статической функции и $this недоступен внутри методов, объявленных как static,

поскольку brand объявлен как статическая функция, вы можете использовать один из следующих методов для вызова функции

если в классе

self::brand();

или же

static::brand();

снаружи класса

ClassName::brand();
2

функции статичны, поэтому вы должны использовать

self::brand()

вместо

$this->brand()

2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector