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

时间:2018-02-22 13:36:19

标签: 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)->get();
        return view("bible", compact('results'));
    }

}

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

我试过了:

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

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

2 个答案:

答案 0 :(得分:4)

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

return view("bible", ['results' => $results, 'book' => $this->book, 'chapter' => $this->chapter]);

bible视图中:

{{ $book }}

或者你可以这样做:

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

答案 1 :(得分:3)

您的控制器查询没有任何问题。您只是没有返回您尝试返回控制器的变量,而当您正在运行->get()时,它会返回一个数组,因此您需要在刀片中执行此操作:

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

Blade documentation