laravel无法解析数据

问题描述 投票:0回答:2

我想从PayAbleIndexPayAbleEdit进行页面编辑。

在laravel 5.4我可以使用:

<a href="{{ route('payable.edit',$data->id) }}"><button class="btn btn-primary">Edit</button></a>.

但目前我正在使用laravel 5.7并且我复制了相同的代码,但是laravel无法从中获取任何数据。

我的blade.php

@foreach($purchase as $data)
    <tr>
      <td>{{ $data->id }}</td>
      <td>{{ $data->created_at }}</td>
      <td>@if($data->import == 'y')Yes @else No @endif</td>
      <td><a href="{{ route('payable.edit',1) }}" class="btn btn-success">Edit {{ $data->id }}</a></td>
    </tr>
  @endforeach

我的控制器

public function edit(accountPayAble $accountPayAble)
{
    $pa = accountPayAble::where('purchases',$accountPayAble->id)->get();
    return view('pages.payAbleEdit',['pa' => $pa]);
}

我的accountPayAble主键不是ID而是purchases

我的应付账款模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class accountPayAble extends Model
{
  protected $table = "account_pay_ables";
  protected $primaryKey = 'purchases';
  public $timestamps =false;
  public function purchase(){
    return $this->belongsTo('App\purchase','purchases');
  }
}
laravel-routing laravel-5.7
2个回答
0
投票

我认为控制器返回阵列名称应该如下购买

public function edit(accountPayAble $accountPayAble)
{
    $pa = accountPayAble::where('purchases',$accountPayAble->id)->get();
    return view('pages.payAbleEdit',['purchase' => $pa]);
}

检查这个,如果不可能在下面评论。


0
投票

以下是编辑方法的工作原理

如果你像这样在刀片中的edit方法参数中传递id

<a href="{{ route('payable.edit',1) }}" class="btn btn-success">Edit {{ $data->id }}</a>

在这种情况下,路由必须具有/ {id}

// If you are using resource route then it will add /{id} in your edit parameter 
Route::resource('payable', 'AccountPayAble');

// If you've defined custom route then 
Route::get('/payable/edit/{id}','AccountPayAble@edit')->name('payable.edit');

在你的控制器中

// then you need to pass as well in your Controller method
public function edit(Request $request, $id)
{
    $ap = AccountPayAble::find($id);
    // OR
    $ap = AccountPayAble::where('primary_key',$id)->first();
    return view('pages.payAbleEdit',compact('ap'));
}

// If you've primary key other than id then define key into your model
protected $primaryKey = 'your_key_name';

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.