首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用模型函数- Laravel 7

调用模型函数- Laravel 7
EN

Stack Overflow用户
提问于 2020-05-13 09:43:58
回答 3查看 998关注 0票数 0

我已经接近拉勒维尔几天了。考虑到我已经做过各种测试,但什么都没有,我的简单问题是,如何在"Controller“中恢复在"Model”中创建的函数(如果我没有弄错的话,它位于App/中,不是吗?),然后在视图中显示它?

让我更好地解释一下,我必须显示我的帖子总数(作为一个数字),然后我在模型中创建一个查询,该查询对帖子总数进行计数,一旦这样做,我就在控制器中创建实例并将其传递给视图。

可能我在语法上弄错了,我附上了一个例子:

App/Post.php

代码语言:javascript
复制
public function totalActivePost() { 
    $count = DB::table('post')->get(); 
    return $count->count(); 
}

App/Http/Controllers

代码语言:javascript
复制
$modelPost = new Post; 
$totalActivePost = $modelPost->totalActivePost();
return view('index', 
                ['totalActivePost' => $totalActivePost]
           );

在视图中,我调用{{ @totalActivePost }}

不幸的是,没什么,我错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-13 09:49:14

在您的控制器中,您所需要的是:

代码语言:javascript
复制
$totalActivePost = Post::count();
//...
return view('index')->with(['posts' => $posts, 'set' => $set, 'totalActivePost' => $totalActivePost]);

然后在您的视图中使用以下方法访问index

代码语言:javascript
复制
 {{ $totalActivePost }}

或者您可以在模型中使用Local,这允许您在整个应用程序中重用查询:

代码语言:javascript
复制
 public function scopeCountPosts($query)
 {
    return $query->get()->count();
 }

现在您可以在控制器中访问它,如下所示:

代码语言:javascript
复制
$totalActivePost = Post::CountPosts();
票数 0
EN

Stack Overflow用户

发布于 2020-05-13 09:49:02

而不是{{ @totalActivePost }},您应该使用{{ $totalActivePost }}

票数 0
EN

Stack Overflow用户

发布于 2020-05-13 10:10:26

控制器:

代码语言:javascript
复制
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

代码语言:javascript
复制
{{ $totalActivePost }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61771276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档