是否有任何可能的方法通过预先加载来获取自定义属性值
例如,在模型上给定此自定义属性:
class User extends Model {
protected $appends = ['is_member'];
public function getIsMemberAttribute() {
return 'yes';
}
}
和相关模型
class Awards extends Model {
public function owner(){
return $this->belongsTo('App\User');
}
}
我希望能够使用以下请求在集合中获取is_member
属性:
$users=Awards::orderBy('created_at')->with('owner')->get();
答案 0 :(得分:1)
根据Laravel的documentations,$appends
仅用于追加数组和JSON ......
将属性添加到追加列表后,它将包含在模型的数组和JSON表单中。
所以,当你做dd($user)
之类的事情时。您将无法看到is_member
字段,但当您执行$user->toArray()
或$user->toJson()
之类的操作时,您将会看到is_member
或public function show($id) {
$user = User::get($id);
return view('users.show', ['user' => $user->toArray()]);
}
。
基本上,对于始终存在Is Member? : {{ $user['is_member'] }}
// Or if you don't like blade you can do this
// Is Member? : <?php echo $user['is_member'] ?>
字段的地方。您需要做的就是访问它(例如在页面视图/刀片等中)
Is Member? : {{ $user->is_member ? 'Yes' : 'No' }}
// Again if you don't like blade you can do this
// Is Member? : <?php echo $user['is_member'] ? 'Yes' : 'No'; ?>
然后呢,
====Executing command 'npm install'====
System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Microsoft.VisualStudioTools.Project.ProcessOutput..ctor(Process process, Redirector redirector)
Error executing npm - unable to start the npm process
Error - Cannot load global packages.
但正如@Amit在评论中所写的那样,在您将 API 的唯一目的用于此之前,没有任何用例。对于刀片等,您应该更喜欢这样做
<dom-module id="my-button">
<style is="custom-style">
paper-dropdown-menu {
--paper-dropdown-menu-ripple: {
width: 500px;
}
}
</style>
<template>
<content></content>
</template>
<script>
Polymer({
is: 'my-button'
})
</script>
</dom-module>
<my-button>
<paper-dropdown-menu label="Your favourite pastry">
<paper-listbox class="dropdown-content">
<paper-item>Croissant</paper-item>
<paper-item>Donut</paper-item>
<paper-item>Financier</paper-item>
<paper-item>Madeleine</paper-item>
</paper-listbox>
</paper-dropdown-menu>
</my-button>
希望这能解决你的疑虑:)