【发布时间】:2019-02-06 11:18:58
【问题描述】:
我刚开始学习 Laravel,我陷入了一部分,我想从数据库中获取数据并将其传递给刀片(视图)文件,然后在另一个视图文件中使用这个视图,并想将一个变量传递给控制器,但我收到此错误:
“找不到类‘adsController’”
web.php
Route::get('seller/panel', 'sellerController@panel');
panel.blade.php
@include('seller\hook\ads')
sellerController.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,然后我想在 ads.blade.php 中使用 adsController.php 的函数,但它可以'找不到adsController
对不起,我是 laravel 的新手
【问题讨论】:
-
使用控制器输出数据是不好的做法。控制器应该用于将数据传递给视图,并显示所述视图。
-
你的 adsController 命名空间是什么?只需在控制器之前添加命名空间。 {{ 命名空间\adsController::getStatus($ad->approved) }}
-
你有什么建议? @Classified 有什么正确的方法吗?
-
@PayalPandav 它是:
namespace App\Http\Controllers; -
您可以在您的
Ad模型上将所述函数添加为trait,这甚至会使语法更具可读性。$ad->getStatus();