title: Access Laravel Resource Controller from HTTP Controller
body: <p>I'm implementing a small project to maintain a list of books. I'm using PHP 7, Laravel 5.5, Eloquent and SQLite.</p>
  
  <p>I created a Model class <code>book</code> and the respective resource controller <code>BookController</code>. For the sake of simplicity, a book only has to public properties: title and author. </p>
  
  <p>Furthermore, I created an <code>AdminController</code> that creates an admin page. I want to use this page to add books to the database and remove other ones.</p>
  
  <p>My <code>BookController</code> has a store() function:</p>
  
  <pre><code> public function store(Request $request)
  {
      // Validate the request...
      $book         = new Book;
      $book-&gt;title  = $request-&gt;title;
      $book-&gt;author = $request-&gt;author;
      $book-&gt;save();
  }
  </code></pre>
  
  <p>My <code>AdminController</code> has a HTML form with input fields for new books (one for title, one for author) as well as a submit button. This button calls <code>AdminController@post</code>.</p>
  
  <p>Now I wonder how to actually add the book from there.</p>
  
  <p>Should I call the <code>BookController</code> from the <code>AdminController</code> and pass the request object to the <code>BookController</code>? Is this the way, controllers communicate in Laravel? Or should I avoid the <code>store</code> function and add the functionality to the <code>AdminController</code> directly?</p>