BooksController.php第19行出现ErrorException:间接修改重载属性App\Models



在这里,我试图防止数据库中的值重复。但出乎意料的是,我犯了这个错误。此外,author_id默认为null。甚至我都无法抛出异常。任何帮助对我来说都是很大的帮助。

namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesInput;
use DB;
use AppModelsBook;
use AppModelsAuthor;
class BooksController extends Controller
{
public function store(Request $request)
{
$input = Input::all();
$book = new Book;
$book->id = Input::get('id');
$book->title = Input::get('title');
$book->author->id = Input::get('author_id');
$book->price = Input::get('price');
$book->isbn = Input::get('isbn');
$book->language = Input::get('language');
$book->isbn = Input::get('isbn');
$book->year_of_publisher = Input::get('year_of_publisher');
if(DB::table('books')->where('title', '=', Input::get('title'))->get()){
return 'Book is already there';
} else{
$book->save();
return $book; }
}
public function bookFormat($book){  
return [ 
'Id' => $book->id,
'Title' => $book->title,
'Author' => [ 
'Id' => $book->author->id,
'First_name' => $book->author->first_name,
'Last_name' => $book->author->last_name,
'Age' => $book->author->age,
'Country' => $book->author->country
],
'Price' => $book->price,
'ISBN' => $book->isbn,
'Language' => $book->language,
'Year' => $book->year_of_publisher
];
}
}

我认为问题出在这里:

$book->author->id = Input::get('author_id');

你真正想要的是:

$book->author_id = Input::get('author_id');

最新更新