Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel如何将其分配给参考资料中给出的模型_Php_Laravel_Api_Class_Controller - Fatal编程技术网

Php laravel如何将其分配给参考资料中给出的模型

Php laravel如何将其分配给参考资料中给出的模型,php,laravel,api,class,controller,Php,Laravel,Api,Class,Controller,Laravel如何将$this重新分配给Api参考资料中给出的模型,并从技术上返回类中的just方法 假设我们有: new TeamResource(Team::first()); 然后,在TeamResrouce中,当我们调用$this时,它的Team模型说明 并在TeamResource类中自动调用toArray()方法 如果在确切的类中没有任何构造函数,怎么做?我看到了两种可能的情况,一种是我没有真正看到有人使用另一个类模型来初始化一个完全不同的类。你的问题可能在于你初始化的方式 您还可

Laravel如何将
$this
重新分配给Api参考资料中给出的模型,并从技术上返回类中的just方法

假设我们有:

new TeamResource(Team::first());
然后,在
TeamResrouce
中,当我们调用
$this
时,它的
Team
模型说明

并在
TeamResource
类中自动调用
toArray()
方法


如果在确切的类中没有任何构造函数,怎么做?

我看到了两种可能的情况,一种是我没有真正看到有人使用另一个类模型来初始化一个完全不同的类。你的问题可能在于你初始化的方式


您还可以尝试分配
$this=TeamsResource(Team::first())

我看到了两种可能的情况,一种是我没有看到任何人使用另一个类模型来初始化完全不同的类。你的问题可能在于你初始化的方式

您还可以尝试分配
$this=TeamsResource(Team::first())
Magic方法():

API资源(
illumb\Http\Resources\Json\JsonResource
)定义了此方法,因此您可以通过访问资源本身的属性来访问基础模型的属性

$this->something === $this->resource->something;
请注意,我们可以直接从
$this
变量访问模型属性。这是因为资源类将自动代理对底层模型的属性和方法访问,以方便访问

魔术方法():

API资源(
illumb\Http\Resources\Json\JsonResource
)定义了此方法,因此您可以通过访问资源本身的属性来访问基础模型的属性

$this->something === $this->resource->something;
请注意,我们可以直接从
$this
变量访问模型属性。这是因为资源类将自动代理对底层模型的属性和方法访问,以方便访问

对模型实例的
toArray()
调用作为
toJson()
调用在laravel内核和请求管道中完成。这里有一些代码

lighting\Routing\Router
@
toResponse()

公共静态函数响应($request,$response)
{
if($response instanceof responsible){
$response=$response->toResponse($request);
}
if($PsrResponseInterface的响应实例){
$response=(新的HttpFoundationFactory)->createResponse($response);
}elseif($response instanceof Model&&$response->wasnrecentlycreated){
$response=newjsonresponse($response,201);
}elseif(!$SymfonyResponse的响应实例)&&
($response instanceof Arrayable||
$Jsonable的响应实例||
$ArrayObject的响应实例||
$JsonSerializable的响应实例||
is_数组($response))){
$response=新的JsonResponse($response);
}elseif(!$SymfonyResponse的响应实例){
$response=新响应($response);
}
如果($response->getStatusCode()==response::HTTP\u未修改){
$response->setNotModified();
}
返回$response->prepare($request);
}
对模型实例的
toArray()
调用作为
toJson()
调用在laravel内核和请求管道中完成。这里有一些代码

lighting\Routing\Router
@
toResponse()

公共静态函数响应($request,$response)
{
if($response instanceof responsible){
$response=$response->toResponse($request);
}
if($PsrResponseInterface的响应实例){
$response=(新的HttpFoundationFactory)->createResponse($response);
}elseif($response instanceof Model&&$response->wasnrecentlycreated){
$response=newjsonresponse($response,201);
}elseif(!$SymfonyResponse的响应实例)&&
($response instanceof Arrayable||
$Jsonable的响应实例||
$ArrayObject的响应实例||
$JsonSerializable的响应实例||
is_数组($response))){
$response=新的JsonResponse($response);
}elseif(!$SymfonyResponse的响应实例){
$response=新响应($response);
}
如果($response->getStatusCode()==response::HTTP\u未修改){
$response->setNotModified();
}
返回$response->prepare($request);
}

这个
在哪里?你是说
$这个
?是的$这个我是说
这个
?你的意思是
$this
?是的,$this我的意思是没问题,但是当创建
newteamresource()
时,laravel如何调用
toArray()
函数呢?当创建
TeamResource
的新实例时,它不会调用
toArray
,这将在以后解决,根据N69S的回答,最有可能的情况是
JsonResource
JsonSerializable
这没关系,但是laravel在创建
new TeamResource()
时如何调用
toArray()
func?在创建
TeamResource
的新实例时,它不会调用
toArray
,这将在以后解决,根据N69S的回答,最有可能是
JsonResource
JsonSerializable