为什么Laravel的5.6路由哲学已经从5.2改变了? 实际上,开发人员使用5.2版本拥有更多自由自定义路由,但在5.6版本中强制用户仅使用(索引,创建,存储,显示,编辑,更新,销毁)?有什么理由求?我们如何通过使用控制器使用5.6版本来使用我们的自定义路线? 不使用这个表达式?
const EMBED_URL = 'https://embed.twitch.tv/embed/v1.js';
class Hello extends React.Component {
componentDidMount() {
let embed;
const script = document.createElement('script');
script.setAttribute(
'src',
EMBED_URL
);
script.addEventListener('load', () => {
embed = new window.Twitch.Embed(this.props.targetID, { ...this.props });
});
document.body.appendChild(script);
}
render() {
return (
<div>
Hello {this.props.targetID} {this.props.width} {this.props.height}
<div id={this.props.targetID}>test</div>
</div>
)
}
}
Hello.defaultProps = {
targetID: 'twitch-embed',
width: '940',
height: '480',
}
ReactDOM.render(
<Hello />,
document.getElementById('container')
);
注意:函数是在5.2上自动声明的,而不是在路径文件中声明它们!
答案 0 :(得分:0)
Route::controller
已被弃用,原因可能有很多。 Laravel必须扫描这些控制器以确定它们对它们有什么方法,这是一个缓慢的过程。它还使得很难可视化路线文件中注册的路线,因为所有路线定义都不在一个地方。
Route::resource
不是替代品,它只是一种使用资源丰富的控制器的自以为是的方式。这是你应该考虑的事情,但你并没有被迫用它代替Route::controller
。事实上,Route::resource
与Route::controller
共存。
您现在需要在路线文件中明确定义每个路线。你这样做是最好的做法。或者,您可以避免升级到Laravel 5.6,但这可能是一个糟糕的权衡。