The following code works great in a simple PHP file:
class Dad
{
protected $age = 10;
}
class Son extends Dad
{
public function age()
{
return $this->age + 10;
}
}
$dad = new Dad();
$son = new Son();
print_r($son->age());
It prints as expected the value 20, which means the Son
class was able to access the $age
variable.
Now, switching this code into a Laravel project I end up with something like:
Controller:
class CustomersController extends Controller
{
public function refresh(Request $request)
{
$sale = new \App\Classes\Customer\Sale;
$sale->setItems($request->items);
$total = new \App\Classes\Customer\Total;
print_r($total->getItems());
}
}
Class Sale:
namespace \App\Classes\Customer;
class Sale
{
protected $items;
public function setItems($_items)
{
$this->items = $_items;
}
}
Class Total
namespace \App\Classes\Customer;
class Total extends Sale
{
public function getItems()
{
return $this->items;
}
}
The result of print_r($total->getItems())
is array(0) {}
. This means it can access the variable, but somehow it does not get the value?
I obviously check up if items
was actually receiving something and if I change my setItems
function into:
public function setItems($_items)
{
$this->items = $_items;
print_r($this->items);
}
It prints the value correctly. What am I missing?