Laravel 拉威尔模型的奇异行为
只是好奇为什么Laravel 拉威尔模型的奇异行为,laravel,model,eloquent,Laravel,Model,Eloquent,只是好奇为什么 public function get_number() { if(Model::get()->isEmpty()) { $number = Model::create(['number' => '1111111111']); $nubmer = $number->number; //(returns a... model, that's a suprise for me) } else {
public function get_number() {
if(Model::get()->isEmpty()) {
$number = Model::create(['number' => '1111111111']);
$nubmer = $number->number; //(returns a... model, that's a suprise for me)
} else {
$number = Model::orderBy('number', 'desc')->first()->number;
$number = Model::create(['number' => $number+1]);
$number = $number->number; //(returns a property 1111111112 etc).
}
return $number;
在这两种情况下,我都试图获取模型的属性:
$number = $number->number;
但当“If”部分工作时,它返回一个模型(而不是属性)。。。
当“else”部分工作时,它返回一个属性(我所期望的)
这意味着我不懂拉威尔的话:)
为什么它在“If”情况下返回完整的模型?:)如果您的
块包含输入错误:
public function get_number() {
if(Model::get()->isEmpty()) {
$number = Model::create(['number' => '1111111111']);
// this should be $number
// $nubmer = $number->number;
// change it to
$number = $number->number;
} else {
$number = Model::orderBy('number', 'desc')->first()->number;
$number = Model::create(['number' => $number+1]);
$number = $number->number; //(returns a property 1111111112 etc).
}
您也不需要分配$number=$number->number代码>,只需返回:
return $number->number;
例如:
public function get_number() {
if(Model::get()->isEmpty()) {
$number = Model::create(['number' => '1111111111']);
} else {
$number = Model::orderBy('number', 'desc')->first()->number;
$number = Model::create(['number' => $number+1]);
}
return $number->number;
}
if条件numer
中存在键入错误。在第一种情况下,您将返回model,因为您从未重写number
变量的原始值。谢谢)太愚蠢了