Laravel 5.0刀片模板和count()条件

nat*_*tas 4 count laravel blade laravel-blade

我有一个集合(任务),我想在里面计算可能刀片模板只完成的任务.

防爆.总任务= 7

完成的任务总数= 2

总进行中任务= 5

我试试

{{ count($tasks->completed = 100) }}
Run Code Online (Sandbox Code Playgroud)

它有效,但如果我尝试

{{ count($tasks->completed < 100) }}
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误.

有帮助吗?

对不起,我是laravel的新手.

(laravel 5.0)

UPDATE

我需要展示类似的东西:

完成(2)/进行中(5).

在我的控制器中,我:

public function index()
{
    $tasks = Task::All();
    $completed = $tasks->where('completed', 100);
    //I dunno how...
    $inprogress = ...;
    return view('pages.projects', compact('projects', 'tasks', 'completed', 'inprogress'));
}  
Run Code Online (Sandbox Code Playgroud)

在db中,tasks表有一个'completed'(整数)列,我用它来检查任务的状态(0%到100%,100%完成).

Bjö*_*örn 13

我认为你没有使用正确的方法来做到这一点.你正在计算并在一个函数中进行比较.

比较刀片

@if($tasks->completed->count() == 100)
    <p>This is shown if its 100</p>
@else
    <p>This is shown if its not 100</p>
@endif
Run Code Online (Sandbox Code Playgroud)

或者这一个:

@if($tasks->completed->count() < 100)
    <p>This is shown if its smaller than 100</p>
@else
    <p>This is shown if its 100 or bigger</p>
@endif
Run Code Online (Sandbox Code Playgroud)

(更新:)过滤收集和计数刀片:

$tasks = Task::all();
$completed = $tasks->where('completed', 100);
$inprogress = $tasks->filter(function ($task) {
    return $task['completed'] < 100; // Or $task->completed if its an object
});

return view('pages.projects', compact('projects', 'tasks', 'completed', 'inprogress'));
Run Code Online (Sandbox Code Playgroud)

显示刀片中的计数:

<p>{{ $completed->count() }} completed</p>
<p>{{ $inprogress->count() }} in progress</p>
Run Code Online (Sandbox Code Playgroud)