Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel从模型工厂调用控制器函数_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel从模型工厂调用控制器函数

Php Laravel从模型工厂调用控制器函数,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在我的Laravel 5.5项目中构建一些测试 在我的GalleryFactory中,我需要生成一个“链接”,我已经在GallerySController的函数中编写了这段代码,如下所示 private function generateUrlLink() { $generatedLink = str_random(8); $existingGalleryWithGeneratedLink = Gallery::where('link', $generatedLink)-&

我正在我的Laravel 5.5项目中构建一些测试

在我的GalleryFactory中,我需要生成一个“链接”,我已经在GallerySController的函数中编写了这段代码,如下所示

private function generateUrlLink()
{
    $generatedLink = str_random(8);

    $existingGalleryWithGeneratedLink = Gallery::where('link', $generatedLink)->first();

    while (!is_null($existingGalleryWithGeneratedLink)) {
        $generatedLink = str_random(8);
        $existingGalleryWithGeneratedLink = Gallery::where('link', $generatedLink)->first();
    }

    return $generatedLink;
}
我不想在控制器和工厂中编写两次此代码,因为我可能希望有一天修改它,所以我想知道最好的方法是什么

任何帮助都会很棒


谢谢。

最好的方法是在雄辩的模型中而不是在控制器中编写此函数,然后从模型中调用此函数

public static function generateUrlLink()
{
$generatedLink = str_random(8);

$existingGalleryWithGeneratedLink = Gallery::where('link', $generatedLink)->first();

while (!is_null($existingGalleryWithGeneratedLink)) {
    $generatedLink = str_random(8);
    $existingGalleryWithGeneratedLink = Gallery::where('link', $generatedLink)->first();
}

return $generatedLink;
}

希望这能起作用。

谢谢你。。。如果它是一个私有的静态函数,我将如何从控制器或模型工厂调用它呢;假设Gallery是类名