调用未定义的函数App \ Transaksi()

时间:2018-12-16 02:11:52

标签: php laravel laravel-5

我的编码有问题,我想在数据库中计算用户数,但是看起来像这样

  

Symfony \组件\调试\异常\ FatalThrowableError(E_ERROR)   调用未定义函数App \ Transaksi()**

这是我的index.php

 <div class="col-lg-4 col-xs-6">
<!-- small box -->
<div class="small-box bg-aqua">
  <div class="inner">
    <h3>{{ $list->transaksi }}</h3>

    <p>Transaksi</p>
  </div>

和我的controller.php

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BackController extends Controller
{
public function list()
{

$transaksi = \App\Transaksi::get();
$transaksi = \App\Transaksi('id')->count();

 return view('/admin', compact('list'));
 }

}

和我的路线

Route::group(['prefix'=>'user','middleware' => ['auth', 'role:member']],
function (){
    Route::get('/mybook','FrontController@mybook');
});

Route::group(['prefix'=>'admin','middleware' => ['auth', 'role:admin']], function(){


Route::get('/',function() {
  return view('admin.index');
});
Route::get('/','BackController@list');
Route::get('logout','UserController@logout');

谢谢。

2 个答案:

答案 0 :(得分:2)

您的控制器当前工作不多。该视图必须是有效的刀片模板文件,例如admin.index,而不是/admin。然后,您需要将变量而不是函数名称传递给视图。

public function list()
{

    $transaksi = \App\Transaksi::all();
    $numTransaksi = $transaksi->count();

    return view('admin.index', compact('numTransaksi'));
}

然后在视图中,您可以通过{{ $numTransaksi }}访问计数。

您的/中还有web.php的两条路线。如果您希望BackController@list函数正确调用,则应该删除第一个。

这是你的意思吗?

答案 1 :(得分:1)

对不起,您的列表函数中的延迟答复的主要错误是

public function list()
{

$transaksi = \App\Transaksi::get();
$transaksi = \App\Transaksi('id')->count();

 return view('/admin', compact('list'));
 }

您使用与

相同的变量名称

检索所有记录$transaksi = \App\Transaksi::get();和 也用于计算所有记录$transaksi = \App\Transaksi('id')->count();

您也不会将其传递给秃头查看器

相反,您正在传递函数名称list

return view('/admin', compact('list'));

解决您的问题

首先,您不必在每个地方都写\App\Transaksi

只需转到控制器顶部并添加此行

use App\Transaksi;

然后您的功能

有几种计数记录的方法

方法1:

public function list()
{
   $transaksi= Transaksi::latest()->paginate(10);
   return view('transaksi.index', compact('transaksi'));
}

这里view('transaksi.index')是指

Projectname/resources/views/transaksi/index.blade.php

然后在index.blade.php中使用代码即可获取计数

<h3 class="modal-title">{{ $transaksi->total() }} {{ str_plural('Transaksi', $transaksi->count()) }} </h3>

方法2:

public function list()
    {
        $transaksi  = Transaksi::latest()->get();
        $recordCount = Transaksi::count();
        return view('transaksi.index', compact('transaksi','recordCount'));
    }

然后在刀片文件中

<h3>{{ $recordCount }}</h3>

希望有帮助