Привет, ребята, я сделал CRUD (просто создаю и прочитал) в проекте Laravel, создание работает хорошо, и я передал «заем» в функцию show, но в представлении он говорит неопределенную переменную:
моя функция показа в контроллере:
public function show($id)
{
$loan=loan::find($id);
return view('finance/loans')->with('loan',$loan);
}
Мои маршруты:
Auth::routes();
Route::get('/loans', 'LoanController@viewLoanForm');
Route::post('/loans', 'LoanController@store');
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('loan','loanController');
Route::get('finance/loans', function () {
return view('loans');
});
И вот где я называю переменную займа в представлении:
@extends('layouts.app')
@section('content')
<link href="{{ asset('css/loans.css') }}" rel="stylesheet"><html>
<div class="container">
...
</div>
</div>
</div>
<div class="row">
<h1>{{$loan->nume}}</h1>//"nume"is the row from db i want to show
</div></div>
</html>
@endsection
Я думаю, что вам нужно на маршруте :: ресурс («финансы / кредиты») вместо («кредиты»).
И будет работать наверняка
Вы неправильно написали маршрут!
Ваш запрос не достигает метода контроллера
Route::get('finance/loans', function () {
return view('loans');
});
должно быть так
Route::get('finance/loans/{$id}','loanController@show');
или следует использовать маршрут ресурса контроллера
Route::resource('loans','loanController');
URL-адрес «ссуды / шоу / {$ loan_id}»
<a href="route('loans.show',[$id])">Show Loan</a>
Ваше возвращение должно быть таким:
return view('finance/loans')->with(['loan'=>$loan]);
вместо
return view('finance/loans')->with('loan',$loan);
Использовать этот :
return view('finance.loans',compact(['loan']));