#laravel #eloquent #laravel-blade
#laravel #красноречивый #laravel-блейд
Вопрос:
я пытаюсь получить значение одной строки, используя его ключ’ в таблице файлов блейда. как передать ему значение. я извлек всю таблицу из другого блейд-файла, используя foreach
я передал данные со своего контроллера, но он их не распознает.
loaninterest.blade.php
<div class="col-md-12">
<table class="table table-stripped">
<thead>
<tr>
<th>Loan Id</th>
<th>Member</th>
@for($i=0;$i<$loan->duration; $i )
<th>installment</th>
@endfor
</tr>
<tr>
<td>{{ $key}}</td>
<td>{{$loan->member->name}}</td>
@for($i=0;$i<$loan->duration; $i )
<td> {{$loan->interest_amount}} </td>
@endfor
</tr>
</thead>
</table>
</form>
</div>
LoanController.php
public function loanInterest(){
$loanData = Loan::all();
//$findUser =Loan::findOrFail($criteria);
return view($this->_pagePath.'loan.loaninterest',compact('loanData'));
}
web.php
Route::any('loaninterest/{criteria?}','LoanController@loanInterest')-> name('loaninterest');
я вызвал файл блейда loaninterest, как показано ниже
loan.blade.php
<td>
<a href="{{route('loaninterest').'/'.$loan->id }}">Interest detail</a>
</td>
как мне передать loanData в блейд. я получаю эту ошибку
Undefined variable:loan
Ответ №1:
Почему вы передаете URL-адрес при использовании route
<a href="{{route('loaninterest', $loan->id) }}">Interest detail</a>
public function loanInterest(){
// $loanData = Loan::all();
$loanData =Loan::findOrFail($criteria); // or your where condition
return view($this->_pagePath.'loan.loaninterest',compact('loanData'));
}
В контроллере вы запрашиваете все данные из таблицы, но вам нужны только одни данные, поэтому вам нужно findOrFail
использовать уникальный идентификатор или использовать firstOrFail
.
Попробуйте с этим.
Надеюсь, это поможет 🙂
Комментарии:
1. я внес изменения, предложенные в loan.blade.php , я использовал route, так как я передавал значения через функцию контроллера. ошибка та же.
2. да, я изменил его, но мне все равно нужно вызвать его из файла blade, верно?? например, {{$loanData }} или что-то в этом роде. ошибка та же.
3. вам просто нужно вызывать только ваши столбцы данных, например
{{ $loanData->something }}
4. это сработало, спасибо. я просто копировал коды и облажался.
Ответ №2:
Параметры маршрута отправляются в отдельном массиве попробуйте приведенный ниже синтаксис кода
route('routename', [parameter1, paramater2])
проверьте документы
вы можете попробовать
<a href="{{route('loaninterest', ['load' => $loan->id]) }}">Interest detail</a>
для отображения данных ссуды в представлении
public function loanInterest(){
$loanData = Loan::all();
return view($this->_pagePath.'loan.loaninterest', compact('loanData')); //verify if $this->pagePath etc is correct
}
В поле зрения
@foreach ( $loanData as $loanDeta )
{{ $lanData->interest_amount }}
@endforeach
Комментарии:
1. требуется ли вызывать его из блейд-файла, аналогичного @foreach($loanData как $key при извлечении всех данных
2. @PrithviTuladhar для создания параметра URL-адреса маршрута это код для обхода коллекции, да, вы можете использовать
@foreach
@for
теги или блейд, в зависимости от ваших требований. вы можете повысить его, если это будет полезно для вас.3. я думаю, это даст проценты по всем кредитам. вот почему я не использовал @foreach в первую очередь. в любом случае, спасибо, я обнаружил свою ошибку.