我以前在控制器中工作过,但现在无法在存储库设置中使用它。
我有两种模式 - 书籍和ticketAudit如下。
我正在尝试将ticketAudit与书籍相关联但我收到错误调用未定义的方法
以下是我的模特:
图书模型:
class Book extends Eloquent {
public function ticketAudit() {
return $this->hasMany('TicketAudit');
}
}
TicketAudit模型:
class TicketAudit extends Eloquent {
public function book() {
return $this->belongsTo('Book');
}
}
在书籍控制器中我有以下内容(书被注入):
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');
}
}
并且在存储库中的createTicket方法中我有:
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;
}
关联方法导致错误 - 我已经在其他模型中使用了这个但是这个更改到存储库让我头疼!
我犯了什么错误?
答案 0 :(得分:1)
你可以缩短所有这些:
public function createTicket ($input, $book) {
$counter = $input['start_number'];
$end = $input['end_number'];
for ( ; $counter <= $end; $counter++ )
{
$book->ticketAudit()->save($this->ticket->newInstance(array(
'ticketnumber' => $counter,
'status' => 'unused',
'active' => 1
)));
}
}