为什么Laravel 5.6路线已经改变?

时间:2018-03-28 22:14:11

标签: laravel laravel-5.2 laravel-5.6

为什么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上自动声明的,而不是在路径文件中声明它们!

1 个答案:

答案 0 :(得分:0)

Route::controller已被弃用,原因可能有很多。 Laravel必须扫描这些控制器以确定它们对它们有什么方法,这是一个缓慢的过程。它还使得很难可视化路线文件中注册的路线,因为所有路线定义都不在一个地方。

Route::resource不是替代品,它只是一种使用资源丰富的控制器的自以为是的方式。这是你应该考虑的事情,但你并没有被迫用它代替Route::controller。事实上,Route::resourceRoute::controller共存。

您现在需要在路线文件中明确定义每个路线。你这样做是最好的做法。或者,您可以避免升级到Laravel 5.6,但这可能是一个糟糕的权衡。