2017-02-18 176 views
1

我正在使用Laravel 5.4项目。我面临一个问题。我想更多地了解这个问题。对象注入错误

下面的代码正在工作。

PostController.php

<?php 

namespace App\Http\Controllers; 

use DB; 
use View; 
use App\Model\Book; 
use App\Model\Chapter; 
use App\Model\Post; 

class PostController extends Controller 
{ 
     public function index(Book $book,Chapter $chapter) 
     { 
      $books = Book::all(); 
      $posts = Post::get_post($book,$chapter); 

      $data = array(
       'posts'  => $posts, 
       'books'  => $books, 
       'section_id' => '' 
      ); 

      return View::make('posts')->with($data); 
     } 
} 

下面的代码是创建错误 “解析错误:语法错误,意外 '$书'(T_VARIABLE),预计 '' 或 ')'

PostController.php

<?php 

namespace App\Http\Controllers; 

use DB; 
use View; 
use App\Model\Book; 
use App\Model\Chapter; 
use App\Model\Post; 

class PostController extends Controller 
{ 
     public function index(Book $book,Chapter $chapter) 
     { 
      $books = Book::all(); 
      $posts = Post::get_post(Book $book,Chapter $chapter); //issue is in this line 

      $data = array(
       'posts'  => $posts, 
       'books'  => $books, 
       'section_id' => '' 
      ); 

      return View::make('posts')->with($data); 
     } 
} 

为什么会出现这个错误?

+0

公共职能指数(Book $ book,Chapter $ chapter)()在这个函数中从你的geetting $ book – Sona

+0

我从模型中获得这个'$ book'。谢谢 –

+0

如果你正在调用模型,所以不需要再次通过.. – Sona

回答

0

这一行的问题:

$posts = Post::get_post(Book $book,Chapter $chapter); //issue is in this line 

是,当你调用函数你不输入提示的类型。你应该像这样运行功能:

$posts = Post::get_post($book, $chapter); 

是的,你声明get_post功能是这样的:

public static function get_post(Book $book,Chapter $chapter) 
{ 
    // do whatever you want here 
} 

但现在,当你打电话你不使用BookChapter