在 Laravel Nova 中,我有 BelongsToMany 关系(公司 - 枢纽 - 请求)。
在数据透视表中,我有一些额外的列,我可以使用数据透视字段 ( https://nova.laravel.com/docs/1.0/resources/relationships.html#belongstomany )访问这些列,效果很好。
但是现在我有一个特殊情况,我有一个从数据透视表到第三个表(状态)的附加 BelongsTo 关系。我试图在枢轴字段中定义一个 BelongsTo 字段,但这不起作用。
BelongsToMany::make('Companies', 'companies', Company::class)->fields(new CompanyRequestFields()),
Run Code Online (Sandbox Code Playgroud)
枢轴字段:
class CompanyRequestFields
{
/**
* Get the pivot fields for the relationship.
*
* @return array
*/
public function __invoke()
{
return [
Number::make('preis'),
Text::make('bezahlt'),
BelongsTo::make('State', 'state', States::class),
];
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
Call to undefined method Illuminate\Database\Eloquent\Relations\Pivot::state()
Run Code Online (Sandbox Code Playgroud)
关系 state() 实际上存在于枢轴模型上,并且还有一个 Nova 资源状态类。
所以看起来 PivotFields 不支持这个?或者有谁知道是否有可能实现这一目标?
我试图让这个包工作:https : //github.com/laracasts/PHP-Vars-To-Js-Transformer
我根据描述做了一切,但我没有得到变量的输出。
Laravel 版本:laravel/framework (v5.2.24)
我的配置/应用程序
Laracasts\Utilities\JavaScript\JavaScriptServiceProvider::class,
'JavaScript' => Laracasts\Utilities\JavaScript\JavaScriptFacade::class,
Run Code Online (Sandbox Code Playgroud)
我的配置/javascript
'bind_js_vars_to_this_view' => 'footer',
'js_namespace' => 'qwerTEST'
Run Code Online (Sandbox Code Playgroud)
在我的控制器中
use JavaScript;
JavaScript::put(['fett' => 'testtesttest']);
Run Code Online (Sandbox Code Playgroud)
在我的主要观点
@include('layouts.footer');
Run Code Online (Sandbox Code Playgroud)
我的footer.blade.php
`<div>some text</div>`
Run Code Online (Sandbox Code Playgroud)
在我看来
@extends('layouts.intern')
@section('content')
<script>
console.log('test');
console.log(qwerTEST.fett);
</script>
@endsection
Run Code Online (Sandbox Code Playgroud)
chrome 的 javascript 给出了
test
Uncaught ReferenceError: qwerTEST is not defined
Run Code Online (Sandbox Code Playgroud)
源代码中没有 qwerTEST javascript 命名空间。但我完全没有错误。
我错过了什么吗?