I've had this working before in a controller but now can't get it working in a repository set up.
I have two models - books and ticketAudit as below.
I'm trying to associate ticketAudit to books but I get an error Call to undefined method
Here are my models:
Book Model:
class Book extends Eloquent {
public function ticketAudit() {
return $this->hasMany('TicketAudit');
}
}
TicketAudit Model:
class TicketAudit extends Eloquent {
public function book() {
return $this->belongsTo('Book');
}
}
In book controller I have the following (book is injected):
public function store()
{
$input = Input::all();
$result = $this->book->create($input);
if ($result) {
// //if book created then create tickets
$this->ticket->createTicket($input, $result);
return Redirect::route('books.index');
}
}
and in the method createTicket in the repository I have:
public function createTicket($input, $book) {
$counter = $input['start_number'];
while($counter <= $input['end_number']) {
$ticketDetails = array(
'ticketnumber'=>$counter,
'status'=>'unused',
'active'=>1
);
$newTicket = $this->ticket->create($ticketDetails);
$newTicket->associate($book);
$newTicket->save();
$counter = $counter+1;
}
return $counter;
}
the associate method is causing the error - I've got this working in other models but this change to a repository is causing me headaches!
What error have I made?