【问题标题】:calling data from database from controller to view using laravel使用 laravel 从控制器调用数据库中的数据以查看
【发布时间】:2025-11-23 20:55:01
【问题描述】:

控制器:

public function index() {
    $data = DB::table('tusers','tbills','tpackages')
    ->join('tbills', 'tusers.user_id', '=', 'tbills.user_id')
    ->join('tpackages', 'tbills.package_id', '=', 'tpackages.package_id')
    ->select('tusers.user_id','tusers.company_name','tusers.first_name', 'tbills.account_no', 'tpackages.package_name','tbills.start_date','tbills.end_date','tbills.bill_status')
    ->get();

    return View::make('account')->with('data',$data);
}

`

查看:

@forelse($data as $value)
    <td>{{ $value->user_id }}</td>
    <td>{{ $value->company_name }}</td>
    <td>{{ $value->first_name }}</td>
    <td>{{ $value->account_no }}</td>
    <td>{{ $value->package_name }}</td>
    <td>{{ $value->start_date }}</td>
    <td>{{ $value->end_date }}</td>
    <td>{{ $value->bill_status }}

我想从 packagecontroller 调用 $data 到 account.blade 但出现错误

SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "tusers" does not exist
LINE 1: ... "tbills"."end_date", "tbills"."bill_status" from "tusers" i...
^ (SQL: select "tusers"."user_id", "tusers"."company_name", "tusers"."first_name", "tbills"."account_no", "tpackages"."package_name", "tbills"."start_date", "tbills"."end_date", "tbills"."bill_status" from "tusers" inner join "tbills" on "tusers"."user_id" = "tbills"."user_id" inner join "tpackages" on "tbills"."package_id" = "tpackages"."package_id")

感谢您的帮助。

【问题讨论】:

  • 您的表 tusers 未定义。您是否尝试改写users

标签: php mysql laravel laravel-5 laravel-5.2


【解决方案1】:

table() 中删除另外两个表名。像这样的。

public function index() {
    $data = DB::table('users','bills','packages')
    ->join('bills', 'users.id', '=', 'bills.user_id')
    ->join('packages', 'bills.package_id', '=', 'packages.id')
    ->select('users.id','users.company_name','users.first_name', 'bills.account_no', 'packages.package_name', 'bills.start_date', 'bills.end_date', 'bills.bill_status')
    ->get();

    return view('account', ['data' => $data]);
}

请注意列命名。我可能改了一些名字,所以你必须确保你的名字是正确的。

在你看来做

@foreach( $data as $value )
    <td>{{ $value->company_name }}</td>
    ...
@endforeach

您似乎跳过了一些步骤。通过这个免费视频系列正确了解如何使用 Laravel:https://laracasts.com/series/laravel-from-scratch-2017

【讨论】:

    最近更新 更多