首页 > 解决方案 > Laravel 在刀片中使用控制器

问题描述

我刚开始学习 Laravel,我陷入了一部分,我想从数据库中获取数据并将其传递给刀片(视图)文件,然后在另一个视图文件中使用这个视图,并想将一个变量传递给控制器​​,但我得到这个错误:

“找不到类‘adsController’”

网页.php

Route::get('seller/panel', 'sellerController@panel');

panel.blade.php

@include('seller\hook\ads')

卖家控制器.php

public function panel(){
    $ads = DB::table('ads')->get();
    return view('hook\ads', ['ads' => $ads]);
}

adsController.php

class adsController extends Controller {
  public function getStatus($p) {

    if ($p == 'something') {
      $status = 'yeah';
    } else {
      $status = 'blah blahe';
    }
    return view('hook\ads', $status);
  }
}

ads.blade.php

<div class="ads">
@foreach ($ads as $ad)
{{ $ad->name }}
{{ adsController::getStatus($ad->approved) }}
@endforeach
</div>

因此,如您所见,我正在尝试从数据库中获取数据,sellerController.php然后将其传递给 ads.blade.php,然后我想adsController.php在 ads.blade.php 中使用 ' 函数,但找不到adsController

对不起,我是 laravel 的新手

标签: phplaravel

解决方案


在刀片文件的开头,您可以包含以下内容

@php
    use App\Http\Controllers\adsController as adsController;
@endphp

然后在您的刀片模板上,您可以使用您在此处使用的控制器。但是直接使用它是一个非常糟糕的习惯。

由于您是 Laravel 的新手,因此请改变这种编码习惯。

如果您希望需要始终在特定刀片视图上显示的数据,您可以使用某种服务提供商。


推荐阅读