我正在尝试在 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);
});
到目前为止,这段代码工作正常,但是当我尝试通过模型绑定从一个表访问数据到另一个表时,它不允许我访问用户特定的信息。这是发票模型:
<?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');
}
}
我想访问users
表,使用SenderName()
. 所以我在我的脚本中写了这段代码:
alert( element.SenderName.first_name );
在控制台中显示此错误: TypeError: element.SenderName is undefined
我可以通过从路由文件中正常返回一些变量来进行模型绑定。
这是路由文件中的代码:
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 格式返回数据后该怎么做。