Я бы попробовал это:
// prepare an empty $result collection that will store the ids of the users
$result = collect();
// probably a number, not a string, in your database: we should keep the right type
$id = 5;
addRelatedUsersToResult($id, &$result);
dd($result);
// add all the related users ids to the result
// and call itself for each realted user (to check their relations)
function addRelatedUsersToResult($id, &$result) {
$relatedUsers = Users::where('pic_for', $id)->get();
// add the related users and checks their children
foreach ($relatedUsers as $relatedUser) {
$result->push($relatedUser->id);
addRelatedUsersToResult($relatedUser->id, $result);
}
}
Не отвечая на исходный вопрос, но это:
Я на самом деле не уверен, как получить каталог, моя программа будет установлена в так подпроцесс, может найти исполняемую программу, которую я использую.
Можно использовать что-то как
if hasattr(sys, 'frozen'): # this means we're installed using py2exe/pyinstaller
INSTDIR = os.path.dirname(sys.executable)
else:
...
После многих дней поисков я пришел к выводу, что в настоящее время не существует метода создания исполняемых файлов для скриптов python 3.0.
Я придумал одно обходное решение - использовать переносимый Python. : http://www.portablepython.com/releases/
Что, по крайней мере, разрешает отдельную установку, которую вы можете распространять вместе со своими скриптами, чтобы помочь пользователям.
Как насчет cx_Freeze . Кажется, поддерживает Python 3.0 и 3.1?
Я заставил его работать с cx_freeze .
Это было немного хлопотно, так как вам нужно добавить строку кода, чтобы обойти некоторые ошибки, но оказалось чтобы нормально работать с Python 3.1.1 и PyQt4.
Также см. здесь , чтобы проверить эту лишнюю строку кода и т. д.