语法查询Laravel 5.1中的错误访问冲突
我无法找到并理解我的错误。我有桌面付款,我想在我的学生页面上显示这些数据(通过获取student_id)。它应该通过student_id获取数据。语法查询Laravel 5.1中的错误访问冲突
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
错误不是唯一的表格/别名出现。
我想你可以更新您的查询,如:
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'));
}
希望这有助于你。
UPDATE 2017年5月5日 我想你应该更新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
你真的需要有可变$payment
?你有没有在视图的某个地方或任何地方使用它?如果没有,那么这将可能是正确的雄辩语法:
public function payments($id, Request $request) {
$student = Student::with('payments')->where('student_id', $id)->firstOrFail();
return view('students.groups', compact('student'));
}
在上面的例子中,它正在寻找与$id
ID的用户,包括使用在模型中定义的关系及其payments
细节。
如果您需要验证的学生必须始终有至少1付款,那么你可以添加has('payments')
的语法像这样:
public function payments($id, Request $request) {
$student = Student::has('payments')->with('payments')->where('student_id', $id)->firstOrFail();
return view('students.groups', compact('student'));
}
这只会返回,如果学生有存储至少1金在数据库中。
希望它有帮助!
是的,因为你看到我用'$学生 - >付款为$ key => $ payment'在查看为计数器 – Armani
我想你不必在控制器中添加'$ payment',那么在视图中,你只是为循环创建一个新的'$ payment'变量,所以它并不需要被添加到控制器的方法中 –
谢谢,我现在就试试.. – Armani
不,它是行不通的,给出了确切的错误@AddWeb解决方案私人有限公司 – Armani