Laravel:在视图内部调用模型函数

Posted

技术标签:

【中文标题】Laravel:在视图内部调用模型函数【英文标题】:Laravel: Model functions called inside view 【发布时间】:2017-04-08 09:24:23 【问题描述】:

我是否能够创建一个布尔函数,例如如果人是女性则返回 true,如果人是男性则返回 false?

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Patient extends Model

   public $fillable = ['name', 'surname', 'code'];
   public function queque()
         return $this->hasMany(Queque::class);
   
   public function gender()
        if([GET CODE FROM THIS SPECIFIC USER][8] % 2 == 0) //in my country 9th number od code is used to differ between genders
          return false; //man
      else
          return true; //woman
     
   

我希望在视图中使用它。因此,当我像$patient-&gt;gender 一样使用它时,它会返回 0 或 1。它甚至可能吗?我知道查询范围,但它们在视图中毫无用处

任何帮助将不胜感激。

【问题讨论】:

为什么要直接从模型中使用它而不是在控制器中实现它然后将其传递给视图文件? 我想在我的视图中使用它。 我想以某种方式自动化检查“代码”中的第 9 个数字并检查它是否可被 2 整除的过程 所以我可以做类似@if($patient-&gt;gender) man @endif 【参考方案1】:

您可以将您的患者代码作为参数传递:

public static function gender($patientCode) 

if($patientCode % 2 == 0)
// .....

然后通过将代码传递给您的方法,在您的视图文件中调用它:

 App\Patient::gender($patient->code); 

【讨论】:

假设我将一个病人传递给我的视图 1: $patient = Patient::find(1);然后我怎么能指定他是什么性别?我怎样才能在我的模型中填满“从这个特定用户那里获取代码”的空间? 你的意思是这个GET CODE FROM THIS SPECIFIC USER是用户输入吗? 我的模型中的函数。如何从数据库中获取等于code 的字段。所以我真的可以检查性别吗? 所以你问的是从 db 获取数据?不将其传递给您的视图文件? 我正在将用户传递到视图中。一位用户。我想知道他是什么性别。知道我只能通过 mysql 中的 CODE 列获取他的性别,我怎么能做到这一点。如果 CODE 的第 9 个数字能被 2 整除,那么他就是男人。我怎么可能从视图中访问他的性别。通过执行类似 $patient->gender 的操作。我认为它已连接到访问器,但我不知道如何正确执行。

以上是关于Laravel:在视图内部调用模型函数的主要内容,如果未能解决你的问题,请参考以下文章

laraver框架学习------工厂模型填充测试数据

将数组从 AuthController 传递到 Laravel 5 中的登录视图

Laravel 5使用刀片模板在视图中调用函数时如何使用参数

Laravel - 如何调用模型类助手然后在视图中显示结果

1+X web中级 Laravel学习笔记——blade模版

Laravel 4查询内部视图