Php 如何从刀片模板中访问类变量

Php 如何从刀片模板中访问类变量,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,我的控制器索引文件如下所示: class KJVController extends Controller { public $book = "Genesis"; public $chapter = 1; public function index() { $results = KJV::where('book', '=', $this->book)->where('chapter', '=', $this->chapter)-

我的控制器索引文件如下所示:

class KJVController extends Controller
{

    public $book = "Genesis";
    public $chapter = 1;    
    public function index() {
        $results = KJV::where('book', '=', $this->book)->where('chapter', '=', $this->chapter)->get();
        return view("bible", compact('results'));
    }

}
在我的刀片模板中,我希望能够显示上述变量(
$book
$chapter

我试过:

{{KJVController::book}}
{{KJVController->book}}


我似乎无法访问它。如何在我的刀片模板中显示此信息?

您需要先将这些变量传递给视图:

return view("bible", ['results' => $results, 'book' => $this->book, 'chapter' => $this->chapter]);
圣经
视图中:

{{ $book }}
或者你可以这样做:

{{ app('App\Controllers\KJVController')->book }}

控制器查询没有问题。您只是没有返回变量。您试图返回控制器,当您运行
->get()
时,它返回一个数组。因此,您需要在刀片服务器中执行以下操作:

@foreach ($results as $book)
    {{$book->book}}{{$book->chapter}}
@endforeach

@Andrew。。你错得多厉害啊……@Andrew不,我的本能是这么做的,但这是laravel的方式。我是通过艰苦的努力才明白这一点的。事实上,我删除了这个评论。那么你是说这是不可能的吗?(又是@Alexey!)@Chud37我用一个使用IoC容器的例子更新了答案。这是可能的,只是没人会这么做。@AlexeyMezenin是的。但我按照您的建议传递了它,我只是认为控制器在视图中可用,但我猜不可用。@Chud37 ok。很高兴它有帮助。我认为OP想要显示
public
变量,而不是集合数据。