正如问题标题所示,我想知道如何设置我的网站,以便用户在注销后保持在同一页面上.特别是,我想知道Laravel是否提供了这样做的语法.我希望在Laravel中使用最佳实践.
例如:
登录链接显示在每个页面的顶部.Bob已登录并正在查看"关于"页面.Bob点击"退出".Bob已注销并重定向回about页面.
我认为这是一个很好的方法,因为auth过滤器可以确定页面是否受到保护并相应地重定向.
如果你认为从可用性的角度来看这是不好的做法,我也很感兴趣.我见过的大多数示例都将注销功能重定向到主页.有什么理由不留在同一页面上吗?
这是一个例子,在Laravel中使用Eloquent.
假设我正在使用CMS.
示例控制器代码:
Route::get('(.*)', function($route)
{
$page = Page::load_by_route($route);
});
Run Code Online (Sandbox Code Playgroud)
示例代码:
class Page extends Eloquent {
public static function load_by_route($route)
{
// Explode the route and trace to find the actual id of the row we need.
// ... some lines of code to accomplish it...
// Use the $id we discovered to perform the actual query
$page = Page::find($id)->first();
return $page;
}
}
Run Code Online (Sandbox Code Playgroud)
在你问"为什么你不能只使用Page :: where('route','=',$ route) - > first()之前:我不想知道'怎么做'这个例子.我只是想知道在页面模型中使用Page ::是否不好?
给出下表:
+----+-----------+---------+
| id | author_id | content |
+----+-----------+---------+
| 1 | 1 | |
+----+-----------+---------+
| 2 | 2 | |
+----+-----------+---------+
| 3 | 1 | |
+----+-----------+---------+
| 4 | 2 | XYZ |
+----+-----------+---------+
Run Code Online (Sandbox Code Playgroud)
如何选择author_id仅包含无内容的帖子而不使用子查询的的列表?在这种情况下,我想要一个只返回author_id1 的查询。
这行得通,但是我想知道是否有一种方法不必为了性能而使用子查询。
SELECT author_id
FROM my_table
WHERE author_id NOT IN (
SELECT author_id FROM my_table WHERE content != ''
)
GROUP BY author_id
Run Code Online (Sandbox Code Playgroud)
这是一个小提琴。
我正在使用Silex和Doctrine.在我需要bindValue获取LIMIT值之前,它对我来说非常有用.PDO的默认行为是在数字周围插入引号,这显然是不可行的.因此,解决方案是设置data_type参数.不幸的是,它抛出了一个错误.
我的守则
$start_num = 3;
$stmt = $app['db']->prepare('SELECT * FROM myTable LIMIT ?,10');
$stmt->bindValue(1, $start_num, PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)
错误
Fatal error: Class 'Silex\Provider\PDO' not found in ...
Run Code Online (Sandbox Code Playgroud)
我发现的关于这个问题的大多数答案都说这是PDO没有被编译/启用的明显迹象,但是我一直在使用Doctrine(它依赖于PDO?)成功一段时间没有问题.
这是Doctrine的问题吗?我的代码有问题吗?