我想从PayAbleIndex
到PayAbleEdit
进行页面编辑。
在 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');
}
}
答案 0 :(得分:0)
我认为控制器返回数组名称应按以下方式购买
public function edit(accountPayAble $accountPayAble)
{
$pa = accountPayAble::where('purchases',$accountPayAble->id)->get();
return view('pages.payAbleEdit',['purchase' => $pa]);
}
对此进行检查,如果下面没有可能发表评论。
答案 1 :(得分:0)
以下是编辑方法的一般工作原理
如果要在像这样的刀片中的编辑方法参数中传递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';
我希望这会有所帮助。