小编Arc*_*las的帖子

Laravel 5.2重定向成功消息

我正试图在laravel上找到成功的消息回到我的主页.

return redirect()->back()->withSuccess('IT WORKS!');
Run Code Online (Sandbox Code Playgroud)

由于某种原因,变量$ success在运行此代码后没有获得任何值.

我用来显示成功消息的代码:

@if (!empty($success))
    <h1>{{$success}}</h1>
@endif
Run Code Online (Sandbox Code Playgroud)

我已将home和newsletter页面添加到routes.php中的web中间件组,如下所示:

Route::group(['middleware' => 'web'], function () {
    Route::auth();

    Route::get('/', function () {
        return view('home');
    });

    Route::post('/newsletter/subscribe','NewsletterController@subscribe');
});
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这似乎不起作用?

php laravel laravel-5.2

39
推荐指数
5
解决办法
10万
查看次数

如何在测试中正确设置相对于运行脚本的路径?

为了设置一些路径来访问我的应用程序的子目录(比如locale/),我在下面使用它settings.py:

__process_name = os.path.basename(sys.argv[0])
__abspath = os.path.abspath(sys.argv[0])
__l1 = len(__process_name)
__l2 = len(__abspath)
rootdir = __abspath[:__l2-__l1]
Run Code Online (Sandbox Code Playgroud)

然后,例如访问data/:

datadir = rootdir + "data/"
Run Code Online (Sandbox Code Playgroud)

问题是,当我运行settings.py测试(例如python3 -m py.test)时运行它,然后sys.argv[0]再不匹配myapp并且测试脚本无法访问data/.

我想知道如何处理这个问题,例如:

  • 有没有办法从我的应用程序和测试套件中获取相同的rootdir?
  • 或者,我应该settings.py只保留我的应用程序,并为测试套件提供正确的(硬编码)rootdir?
  • 或者installdir在配置文件中定义一个配置文件,该配置文件将在安装期间设置,然后由我的应用程序(而不是上面的代码段)及其测试套件使用?
  • 我也想过更换sys.argv[0]'myappname',但是,因为存在具有相同名称不同的目录,它不知道它得到正确的.(另外,如果在另一个地方安装了一个版本和一个开发版本:如何区分它们呢?)

那么,处理这个问题的最佳方法是什么?

python testing relative-path pytest python-3.x

4
推荐指数
1
解决办法
1197
查看次数