gpt4 book ai didi

jquery - 如何在 Laravel Blade 模板中使用 JSON 数据进行模型绑定(bind)?

转载 作者:行者123 更新时间:2023-12-01 04:46:59 25 4
gpt4 key购买 nike

我正在尝试在 Laravel 中查看特定用户的信息。从下拉菜单中选择用户。我正在尝试使用 jQuery 显示该用户的信息。

这是下拉列表的代码:

{{ Form::label('Field Force Select:' ) }}
<select name="field_force" id="ffID">
<option value=""> --- Please Select a Field Force --- </option>
@foreach($users as $user)
<option value="{{ $user->id }}">
{{ $user->first_name.' '.$user->last_name }}
</option>
@endforeach
</select>

这是路由文件中 $users 的代码:

public function getAccount() {
$group = Sentry::findGroupByName('Field Force');
$users = Sentry::findAllUsersInGroup($group);
$currentUser = Sentry::getUser();
return View::make('users/account',
array('as' => 'account'))
->with(compact('users', 'currentUser')
);
}

从下拉列表中选择一个用户后,我使用此代码来获取用户特定信息:

<script>
$('#ffID').change(function(){
var infoShare= $('.infoStorage');
$.get("{{ url('api/dropDownUserInformation')}}",
{ option: $(this).val() },
function(data) {

$.each(data, function(index, element) {
alert( element.id );

});
});
});

这是 api/dropDownUserInformation 的路由文件:

Route::get('api/dropDownUserInformation',function(){
$fieldForceID=Input::get('option');
$invoices=Invoice::where('sender_id','=',$fieldForceID)->get();
return Response::json($invoices);
});

到目前为止,这段代码工作正常,但是当我尝试通过模型绑定(bind)从一个表访问另一个表的数据时,它不允许我访问用户特定的信息。这是发票模型:

<?php
class Invoice extends \Eloquent {
protected $fillable = [];

public function sales() {
return $this->hasMany('Sale', 'invoice_id','sender_id');
}

public function accounts() {
return $this->belongsTo('SaleAccount');
}
public function senderName() {
return $this->belongsTo('User','sender_id');
}
}

我想使用SenderName()访问users表。所以我在脚本中编写了这段代码:

alert( element.SenderName.first_name );

在控制台中显示此错误:类型错误:element.SenderName未定义

我可以通过正常从路由文件返回一些变量来进行模型绑定(bind)。

这是路由文件中的代码:

public function getUserInfo() {
$invoice=Invoice::where('id','=',1)->get();
return View::make('users/account', array(
'as' => 'account'))->with(compact('invoice'));
}

这是查看文件中的代码:

@foreach($invoice as$inv)
{{ $inv->senderName->first_name}}
@endforeach

它工作正常,但我不知道返回 JSON 格式的数据后该怎么做。

最佳答案

我会改变路线:

Route::get('api/dropDownUserInformation',function(){
$fieldForceID = Input::get('option');
$invoices = Invoice::where('sender_id','=',$fieldForceID)
->join('users', 'invoices.sender_id', '=', 'users.id')->get();
return Response::json($invoices);
});

应该可以在您的 jquery 函数中按如下方式访问...

 alert( element.first_name );

关于jquery - 如何在 Laravel Blade 模板中使用 JSON 数据进行模型绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28063991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com