我正在尝试获取付款表中的所有行,其中我有另一个名为元素的表我想获取付款表中的所有行,其中project_id列=元素表内行的ID我正在使用Laravel框架请帮助我这是一些代码
支付模式
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Payment extends Model
{
protected $table = 'payments';
public function projects() {
return $this->belongsTo('App\Project');
}
}
元素模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Project extends Model
{
protected $table = "projects";
public function payments() {
return $this->hasMany('App\Payment');
}
}
路线文件
Route::get('special/{project_id}', 'SpecialController@index');
Controller 中的索引函数
<?php
namespace App\Http\Controllers;
use App\Project;
use App\Payment;
use Illuminate\Http\Request;
class SpecialController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Project $project_id)
{
return view('special.index')->with(['projects' => $project_id]);
}
这是我的问题,请帮忙 祝一切顺利😀
最佳答案
在你的 Controller 中,我看到你注入(inject)了一个 Project 实例,但命名为 $project_id。那不是一个 id,id 会被解析为 Project 的一个实例。
public function index(Project $project_id)
只是一个注释。使用索引方法显示列表,除非它是嵌套资源。
public function index(Project $project)
{
//assuming that $project is an instance of Project
$project = $project->with('payments')->get();
//$project will now include the related payments as well
//if you want to check do this, for debugging uncomment next line
//dd($project->toArray());
return view('special.index')->with(['project' => $project]);
}
代码中发生的情况是 $project 及其相关付款被检索。在 with(' payments')
中,' payments' 是关系的名称。
关于php - 如何获取不同表中特定列 = 其他行的 id 的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46515001/