Laravel 中的 CRUD 错误

CRUD error in Laravel

大家好,我在 Laravel 项目中创建了一个 CRUD(仅创建和读取),创建工作正常,我在 show 函数中传递了 "loan",但在视图中显示未定义变量:

我在控制器中的显示功能:

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');
});

这里是我在视图中调用变量 loan 的地方:

@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

The ERROR

使用这个:

return view('finance.loans',compact(['loan']));

你的return应该是这样的:

return view('finance/loans')->with(['loan'=>$loan]);

而不是

return view('finance/loans')->with('loan',$loan);

你拼错了路线! 您的请求未到达控制器方法

Route::get('finance/loans', function () {
    return view('loans');
 }); 

应该是这样

Route::get('finance/loans/{$id}','loanController@show');

或者应该使用控制器资源路由

Route::resource('loans','loanController');

url 'loans/show/{$loan_id}'

<a href="route('loans.show',[$id])">Show Loan</a>

我认为您需要 route::resource('finance/loans') 而不是 ('loans')。 肯定会工作