Laravel 框架自身就为我们带来了很多 helper functions,其实作者的最初目的就是为了提高便利性和保持代码剪短(虽然有人不太同意这个观点,因为会破坏一点点的代码规范。),我以为这些 helper functions 还是非常好的。其中就有这个 view exist() 方法:
class PostController extends Controller
{
public function show($slug)
{
$post = Post::with('posts')->where('slug', $slug)->firstOrFail();
if (view()->exists('post.custom.'.$post->slug)) { // 这一行使用
$view = 'post.custom.'.$post->slug;
} else {
$view = 'post.show';
}
return view($view, [
'post' => $post,
]);
}
}
你可以看到,这个方法用在用户自定义
这个需求上其实是非常适合。如果用户有自定义的视图文件,就加载自定义的视图文件,否则就加载默认的 post.show
。How cool is that !