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
变量,而不是集合数据。