语法查询Laravel 5.1中的错误访问冲突

时间:2017-05-04 10:02:44

标签: php mysql laravel laravel-5.1

我无法找到并理解我的错误。我有桌面付款,我想在我的学生页面上显示这些数据(通过获取student_id)。它应该通过student_id获取数据。

payments{id, student_id, course_id, transfer_amount, payment_type_id, is_paid, date}

但这个错误一直在显现。我的错误在哪里,伙计们请帮忙。感谢任何帮助。 这是 StudentsController.php

public function payments($id, Request $request) {
        $student = Student::findOrFail($id);
        $payment = Payment::where('student_id', $id)-> get();
        $student->has('payments')->where('student_id', $request->id)->get();
        return view('students.groups', compact('student', 'payment'));

    }

这是我的模型 Student.php

public function payments()
    {
        return $this->belongsToMany('App\Payment','payments', 'student_id');
    }

这里是观看学生>的 payments.blade.php

@forelse ($student->payments as $key => $payment)
                            <tr class="center aligned">
                              <td>{{++$key}}</td>
                              <td>{{$payment->course_id}}</td>
                              <td>{{$payment->payment_type_id</td>
                              <td>{{$payment->transfer_amount}}</td>
                              <td>
                              @if($payment->is_paid)
                                 <p style="color: green;">Paid</p>

                              @else <p style="color: red">Not Paid</p>
                              @endif
                              </td>
                     @empty
                       <tr class="center aligned">
                       <td colspan="12" class="ui red header">No data</td>
                        </tr>
                     @endforelse

错误不显示唯一的表/别名。

1 个答案:

答案 0 :(得分:0)

我认为您可以更新您的查询,如:

public function payments($id, Request $request) {
       $student = Student::findOrFail($id);
       $payment = Student::with('payments')->where('id', $id)->get();

       return view('students.groups', compact('student', 'payment'));

   }

希望这会对你有所帮助。

更新5/5/2017 我认为你应该更新payments.blade.php

@forelse ($student->payments as $key => $payment)
    <tr class="center aligned">
        <td>{{++$key}}</td>
        <td>{{$payment->course_id}}</td>
        <td>{{$payment->payment_type_id}}</td>
        <td>{{$payment->transfer_amount}}</td>
        <td>
        @if($payment->is_paid)
            <p style="color: green;">Paid</p>

        @else <p style="color: red">Not Paid</p>
        @endif
    </td>
@empty
<tr class="center aligned">
    <td colspan="12" class="ui red header">No data</td>
</tr>
@endforelse