我对laravel完全陌生。我正在尝试使用Helpers从另一个表但在同一数据库中发布输入。我尝试使用Helpers通过电子邮件获取姓名。但是我得到了这个错误: 尝试获取非对象的属性“名称”(查看:C:\ xampp \ htdocs \ ims \ resources \ views \ leave \ add.blade.php)
以下是我的助手:
public static function getnamebyemail($id)
{
$userdata = DB::table('hr_intern_table')->where('id', '=', $id)->first();
if(!empty($userdata))
{
return $userdata->name;
}
return '';
}
以下是我尝试获取并发布的表格:
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group form-float">
<label for="name" class="form-label">Trainee Name</label>
<div class="form-line">
<input type="text" class="form-control" name="name" disabled value="{{Helpers::getnamebyemail($data->name)}}"/>
</div>
</div>
</div>
下面是我的控制器:
public function add($id)
{
$data = DB::table('leave_req_tb')->where('id', '=', $id)->first();
return view('leave.add', compact('data', 'id'));
}
public function store_request(Request $request, $id)
{
$data = $this->validate($request, [
'leave_applied'=>'required',
'start_leave'=>'required',
'end_leave'=>'required',
'justification'=>'required',
'sv_approval'=>'required',
'hod_approval'=>'required',
'hr_approval'=>'required',
]);
DB::table('leave_req_tb')->where('id', '=', $id)->insert([
'intern_id'=>$intern_id,
'leave_applied'=>$request->leave_applied,
'start_leave'=>$request->start_leave,
'end_leave'=>$request->end_leave,
'justification'=>$request->justification,
'sv_approval'=>$request->sv_approval,
'hod_approval'=>$request->hod_approval,
'hr_approval'=>$request->hr_approval,
'created_at' => now(),
]);
return redirect('/leave/view')->with('success', 'The profile has been updated successfully.');
}
我很高兴有人可以帮助我并解释为什么我收到此错误,因为我认为我的代码没有问题。
答案 0 :(得分:0)
Helper函数是全局的,没有类 所以在您的Helpers.php中 只需放置
function getnamebyemail($id)
{
$userdata = DB::table('hr_intern_table')->where('id', '=', $id)->first();
if(!empty($userdata))
{
return $userdata->name;
}
return '';
}
以及所需的进口
只需在刀片中使用
{{getnamebyemail($data->name)}}