eve*_*isk 2 php laravel laravel-5.2
我正在使用Dingo API在Laravel 5.2中创建一个API,并且有一个控制器使用以下命令返回数据
return $this->response->paginator($rows, new SymptomTransformer, ['user_id' => $user_id]);
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何user_id在SymptomTransformer中检索值!尝试了许多不同的方法并尝试了上课,但是我对Laravel和OOP还是比较陌生,因此如果有人可以将我指向正确的方向,将不胜感激。
以下是我的变压器课。
class SymptomTransformer extends TransformerAbstract
{
public function transform(Symptom $row)
{
// need to get user_id here
return [
'id' => $row->id,
'name' => $row->name,
'next_type' => $next,
'allow' => $allow
];
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将额外的参数传递给转换器构造函数。
class SymptomTransformer extends TransformerAbstract
{
protected $extra;
public function __construct($extra) {
$this->extra = $exta;
}
public function transform(Symptom $row)
{
// need to get user_id here
dd($this->extra);
return [
'id' => $row->id,
'name' => $row->name,
'next_type' => $next,
'allow' => $allow
];
}
}
Run Code Online (Sandbox Code Playgroud)
然后打电话
return $this->response->paginator($rows, new SymptomTransformer(['user_id' => $user_id]));
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以通过设置器设置额外的参数。
class SymptomTransformer extends TransformerAbstract
{
public function transform(Symptom $row)
{
// need to get user_id here
dd($this->test_param);
return [
'id' => $row->id,
'name' => $row->name,
'next_type' => $next,
'allow' => $allow
];
}
public function setTestParam($test_param)
{
$this->test_param = $test_param;
}
}
Run Code Online (Sandbox Code Playgroud)
进而:
$symptomTransformer = new SymptomTransformer;
$symptomTransformer->setTestParam('something');
return $this->response->paginator($rows, $symptomTransformer);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2121 次 |
| 最近记录: |