从HTTP控制器访问Laravel资源控制器

时间:2018-03-31 10:20:39

标签: php laravel eloquent

我正在实施一个小项目来维护一系列书籍。我使用的是PHP 7,Laravel 5.5,Eloquent和SQLite。

我创建了一个Model类book和相应的资源控制器BookController。为简单起见,一本书只有公共属性:标题和作者。

此外,我创建了一个AdminController来创建管理页面。我想使用此页面将书籍添加到数据库并删除其他书籍。

我的BookController有一个store()函数:

 public function store(Request $request)
{
    // Validate the request...
    $book         = new Book;
    $book->title  = $request->title;
    $book->author = $request->author;
    $book->save();
}

我的AdminController有一个HTML表单,其中包含新书的输入字段(一个用于标题,一个用于作者)以及一个提交按钮。此按钮调用AdminController@post

现在我想知道如何从那里实际添加这本书。

我应该从BookController拨打AdminController并将请求对象传递给BookController吗?这是控制器在Laravel进行通信的方式吗?或者我应该避免使用store功能并直接向AdminController添加功能吗?

1 个答案:

答案 0 :(得分:0)

  • 我认为你应该将两个控制器分开用于两个目的。您可以在其他控制器中将变量声明为Book模型并使用它。
  • 你可以使用BookController,只需要为一个控制器定义两个路由,并在store方法中写一些逻辑,我的观点......这不是好方法。因为需要检查一些变量以检测来自管理员和来自用户的请求。我不想在用户和工作流程之间做一些复杂的事情。管理员。