how to fix play controller error : incompatible types: long cannot be converted to List<General_store>

how to fix play controller error : incompatible types: long cannot be converted to List<General_store>

我想获取 table 列数据 "amount" 和 return 其总和的总和。感谢您的帮助

模板代码:

@(tasks: List[General_store], taskForm: Form[General_store])
@main("current balance") {


<div class="col-md-5  col-md-offset-3   client-margin">
    <div class="panel panel-success">
        <div class="panel-heading">
          current Balance
        </div>
        <div class="panel-body"> <br/><br/><br/>
            @for(storedb <- tasks) {



                <p>
                    <b >Balance:</b>@storedb.amount
                </p>


            }

        </div>

    </div>
</div>
}

问题与您的模板参数有关。您指定了两个参数 - 商店列表和表单

@(tasks: List[General_store], taskForm: Form[General_store])

但是从你的控制器你实际上提供了一个长的(General_store.sumOfStores())和一个表格(taskData)。您会看到参数数量匹配但参数类型不匹配


解决方案:您必须更改您的控制器代码:

return ok(views.html.balance.render(General_store.sumOfStores(), taskData)

至:

return ok(views.html.balance.render(General_store.sumOfStores(), General_store.all(), taskData)

以及来自

的模板参数定义

@(tasks: List[General_store], taskForm: Form[General_store])

至:

@(totalSum: Long, tasks: List[General_store], taskForm: Form[General_store])

如果您随后想在页面上显示总和,您必须将此行添加到模板中(例如在 <div class="panel-body">:

之后

<h2>Total sum is: @totalSum</h2>