我已经接近拉勒维尔几天了。考虑到我已经做过各种测试,但什么都没有,我的简单问题是,如何在"Controller“中恢复在"Model”中创建的函数(如果我没有弄错的话,它位于App/中,不是吗?),然后在视图中显示它?
让我更好地解释一下,我必须显示我的帖子总数(作为一个数字),然后我在模型中创建一个查询,该查询对帖子总数进行计数,一旦这样做,我就在控制器中创建实例并将其传递给视图。
可能我在语法上弄错了,我附上了一个例子:
App/Post.php
public function totalActivePost() {
$count = DB::table('post')->get();
return $count->count();
}App/Http/Controllers
$modelPost = new Post;
$totalActivePost = $modelPost->totalActivePost();
return view('index',
['totalActivePost' => $totalActivePost]
);在视图中,我调用{{ @totalActivePost }}
不幸的是,没什么,我错了什么?
发布于 2020-05-13 09:49:14
在您的控制器中,您所需要的是:
$totalActivePost = Post::count();
//...
return view('index')->with(['posts' => $posts, 'set' => $set, 'totalActivePost' => $totalActivePost]);然后在您的视图中使用以下方法访问index:
{{ $totalActivePost }}或者您可以在模型中使用Local,这允许您在整个应用程序中重用查询:
public function scopeCountPosts($query)
{
return $query->get()->count();
}现在您可以在控制器中访问它,如下所示:
$totalActivePost = Post::CountPosts();发布于 2020-05-13 09:49:02
而不是{{ @totalActivePost }},您应该使用{{ $totalActivePost }}
发布于 2020-05-13 10:10:26
控制器:
public function __construct()
{
//$this->middleware('auth');
$this->modelPost = new Post;
}
public function index()
{
// get settings
$set = DB::table('settings')
->where('id', 1)
->first();
// other code...
$totalActivePost = Post::count();
return view('index',
['posts' => $posts],
['set' => $set],
['totalActivePost' => $totalActivePost]
);
}视图index.blade
{{ $totalActivePost }}https://stackoverflow.com/questions/61771276
复制相似问题