当我点击编辑按钮时给我错误

When I click on edit button give me error

当我点击编辑按钮时出现错误,我现在不明白是什么问题,请帮助我

Trying to get property 'id' of non-object (View: C:\xampp\htdocs\ytl\resources\views\profile\edit.blade.php)

这是我的 userprofilecontroller

public function edit( Request $request, $id){

    $user_profile_id = UserProfile::where('id', '=', $id)->firstOrFail();

    $exchanges = Exchange::pluck('exchange','id')->all();
    $markets = Market::pluck('market','id')->all();
    $countries = Country::pluck('country','id')->all();
    $brokerage_company = BrokerageCompany::pluck ('brokerage_company','id')->all();
    $user_profile = UserProfile::pluck('charge_intraday','charge_delivery','charge_per_lot','charge_per_order')->all();



    return view('profile.edit', compact('user_profile_id','exchanges','markets','countries','brokerage_company','user_profile'));

}
public function update(Request $request, $id){

    $user_profile_id = UserProfile::findOrFail($id);
   $input = $request->except( 'brokerage_company','user_profile');
  $user_id = $user_profile->update($input);


    return redirect('/profile');

}

这是profile\index.blade.php文件

<div class="card card-table">
        <div class="card-header">Basic Tables
            <div class="tools dropdown"><span class="icon mdi mdi-download"></span><a class="dropdown-toggle" href="#" role="button" data-toggle="dropdown"><span class="icon mdi mdi-more-vert"></span></a>
                <div class="dropdown-menu" role="menu"><a class="dropdown-item" href="#">Action</a><a class="dropdown-item" href="#">Another action</a><a class="dropdown-item" href="#">Something else here</a>
                    <div class="dropdown-divider"></div><a class="dropdown-item" href="#">Separated link</a>
                </div>
            </div>
        </div>
        <div class="card-body">
            <table class="table">
                <thead>
                <tr>
                    <th style="width:10%;">Country</th>
                    <th style="width:10%;">Exchange</th>
                    <th class="number">Market</th>
                    <th class="number">Company</th>
                    <th class="actions">Charges</th>
                </tr>
                </thead>
                @if($user_profile)
                    <tbody>
                    @foreach($user_profile   as $user_profiles)
                <tr>

                    <td>{{$user_profiles->country->country}}</td>
                    <td>{{$user_profiles->exchange->exchange}}</td>
                    <td>{{$user_profiles->market->market}}</td>
                    <td>{{$user_profiles->brokerage_company->brokerage_company}}</td>
                    <td class="cell-detail"><span>Intaday-charge</span>{{$user_profiles->charge_intraday}}
                        <span class="cell-detail-description">Delivery-charge</span>
                        {{$user_profiles->charge_delivery}}</td>
                    {{--<td>{{$user_profiles->charge_per_lot}}</td>--}}
                    {{--<td>{{$user_profiles->charge__per_order}} </td>--}}
                    <td> <a class="btn btn-info btn-sm" href="{{route('profile.edit', $user_profiles->id)}}">Edit</a></td>

                </tr>

                        @endforeach
                </tbody>
                    @endif
            </table>
        </div>
    </div>

这是 profile\edit.blade.php 文件

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Add Charge</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>

            <div class="modal-body">
                {{--<form method="PATCH", id="form",  action="{{action('Profile\UserProfileController@update',$user_profile_id->id)}} ", accept-charset="UTF-8">--}}
                    {{--{{ csrf_field() }}--}}
                    {{--{{ method_field('PATCH') }}--}}


                    {!! Form::model($user_profile,['method'=>'PATCH', 'action'=> ['Profile\UserProfileController@update',$user_profile->id]]) !!}


                    <div class="row">

                        <div class="col-md-6 mb-3 form-group">
                            Country:<select name="country_id" id="country" class="form-control " onchange="myfunc()" >
                                <option value="">Select</option>
                                @foreach($countries as  $key=>$val )
                                    <option value="{{ $val->id }}">{{  $val->country }}</option>
                                @endforeach
                            </select>
                        </div>
                        <div class="col-md-6 mb-3 form-group">
                            Exchange:<select name="exchange_id" id="exchange" class="form-control notselect" onchange="myfunc1()">
                                <option value="">Select</option>
                                {{--@foreach($exchanges as  $key=>$val )--}}
                                {{--<option value="{{ $val->id }}">{{  $val->exchange }}</option>--}}
                                {{--@endforeach--}}
                            </select>
                        </div>
                        <div class="col-md-6 mb-3 form-group">
                            Market<select name="market_id" id="market" class="form-control bindselect" >
                                <option value="">Select</option>
                                {{--@foreach($markets as  $key=>$val )--}}
                                {{--<option value="{{ $val->id }}">{{  $val->market }}</option>--}}
                                {{--@endforeach--}}
                            </select>
                        </div>

                        <div class="col-md-6 mb-3 form-group">
                            Company:<select name="brokerage_company_id"  id="brokerage_company_id" class="form-control " >
                                <option value="">Select</option>
                                @foreach($brokerage_company as  $key=>$val)
                                    <option value="{{ $val->id }}">{{  $val->brokerage_company }}</option>
                                @endforeach
                            </select>
                        </div>


                        <div class="col-md-6 mb-3 form-group">
                            Intraday_charge: <input type="text" name="charge_intraday" class="form-control"><br>
                        </div>
                        <div class="col-md-6 mb-3 form-group">
                            Delivery_charge: <input type="text" name="charge_delivery" class="form-control"><br>
                        </div>
                        <div class="col-md-6 mb-3 form-group">
                            Delivery_charge: <input type="text" name="charge_per_lot" class="form-control"><br>
                        </div>
                        <div class="col-md-6 mb-3 form-group">
                            Delivery_charge: <input type="text" name="charge_per_order" class="form-control"><br>
                        </div>

                        {!! Form::close() !!}
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                            <button type="submit" value="Submit" name="form1" class="btn btn-primary">Save changes</button>
                        </div>
                    </div>



                </form>
            </div>

        </div>
    </div>
</div>
</div>

您似乎误解了 Pluck 方法。 Pluck 是通过键将几个属性从数组中取出来。与 selecting 数据库中的列无关。

我猜你想 select 单曲 UserProfile。正确的做法如下:

public function edit(Request $request, $id){

    $user_profile = UserProfile::findOrFail($id); // Select a UserProfile by ID or fail

    $exchanges = Exchange::all('exchange', 'id'); 
    $markets = Market::all('market','id');
    $countries = Country::all('country','id');
    $brokerage_company = BrokerageCompany::all ('brokerage_company','id');
    // I dont know what you want with this statement?
    // $user_profile = UserProfile::pluck('charge_intraday','charge_delivery','charge_per_lot','charge_per_order')->all();

    return view('profile.edit', compact('user_profile','exchanges','markets','countries','brokerage_company'));

}