Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Есть пакет
Здесь туториал Посмотрите что и как, думаю и с малым опытом разберетесь а лучше всего тщательно изучить документацию laravel и удостоверится что вы понимаете как работает фреймворк. Удачи!
| If you have multiple user tables or models you may configure multiple | sources which represent each model / table. These sources may then | be assigned to any extra authentication guards you have defined.
Возможно вам стоит сделать так
в auth.php где guards
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'some_guard' => [
'driver' => 'session',
'provider' => 'some_provider',
],
],
providers ->
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'some_provider' => [
'driver' => 'eloquent',
'model' => App\SomeModel::class,
],
]
ну и перед тем как проверять меняете
Auth::attemp()
на
$frst = auth()->guard('web'); $scnd= auth()->guard('some_guard');
вот так например делится разная авторизация. Вам стоит попробовать по экспериментировать
через локальный диск можно вот так.. имел ввиду
$file = Storage::url('file.txt');
return response()->download($file);
в документации дропбокса есть методы
createTemporaryDirectLink
и
createShareableLink
но эти ссылки ведут к дропбоксу который показывает превью
а я пытаюсь получить именно content_link
Доброго времени суток решил использовать dropbox как хранилище файлов создал сервис провайдер как в доках все норм put,get,. создаю и открываю файлы, теперь есть нужда по пути например
Route::get('/file/{filename}','FileController@getFileByName');
отдавать файл не показывая путь до самого файла через локальный диск можно вот так
return response()->download($link);
но драйвер дропбокса не работает на url getFile и тд чтобы получить ссылку на файл. какие решения тут могут быть ? подскажите
Ситуация такова, есть три поля 'average_bills', 'kitchen', 'district'
отправить могут например только 'average_bills' или на оборот все кроме него. Пробывал has, only, но работает не как нужно вот например only
if(Request::only('kitchen')){
$restos = Resto::whereHas('kitchens', function ($query)use ($kitchen) {
$query->where('id', $kitchen);
})
->get();
}elseif(Request::only('district')){
$restos = Resto::where(function($q )use ($district)
{
$q->where('district', '=', $district);
})
->get();
}elseif(Request::only('average_bills')){
$restos = Resto::where(function($q )use ($average_bills)
{
$q->where('average_bills', '=', $average_bills);
})
->get();
}else{
$restos = Resto::where(function($q )use ($average_bills,$district)
{
$q->where('average_bills', '=', $average_bills);
$q->where('district', '=', $district);
})
->whereHas('kitchens', function ($query)use ($kitchen) {
$query->where('id', $kitchen);
})
->get();
}
$restos->shuffle();
return $restos;
кто сталкивался с такой задачей или знает решение HELP!!!
сработало
$restos = Resto::whereHas('services', function($query)use ($service){
$query->whereIn('id',$service);
})
->whereHas('kitchens', function($query)use ($kitchen){
$query->whereIn('id',$kitchen);
})
->get();
nemocoder пишет:стойте а как быть если нужно проверить сразу в двух пивотных таблицах на наличие объектов с заданным id ?
Уточните вопрос.
Как вариант еще оно отношение запилить и пользовать.
Смотри у меня модель Resto связывается еще с Service
public function services()
{
return $this->belongsToMany('App\Service')->withTimestamps();
}
public function restos()
{
return $this->belongsToMany('App\Resto');
}
для проверки kitchens я делаю так
$services = Request::get('services');
$kitchen = Request::get('kitchen');
$restos = Resto::whereHas('kitchens', function ($query)use ($kitchen) {
$query->whereIn('id', $kitchen);
})->get();
но мне в запросе приходит еще services по аналогии точно так же нужно проверить вместе с kitchens
стойте а как быть если нужно проверить сразу в двух пивотных таблицах на наличие объектов с заданным id ?
решено! можно закрыть, поспешил
Доброго времени суток, возможно не правильно сформулирую свой вопрос, вообщем такая задача:
поиск заведений по кухням
использую отношение многие к многим
Resta model
public function kitchens()
{
return $this->belongsToMany('App\Kitchen')->withTimestamps();
}
Kitchen model
public function resto()
{
return $this->belongsToMany('App\Resto');
}
допустим с формы приходит массив с id кухни, как получить заведение у которых есть эти кухни ?
за коментить 'App\Http\Middleware\VerifyCsrfToken', в Kernel.php
Всем привет, пишу API для ios & android приложения, есть необходимость отправлять пуш - уведомления, решил заюзать пакет davibennun/laravel-push-notification
поставил настроил по инструкции, решил проверить, попросил коллег по проекту скинуть тестово device_token одного девайса на андроиде
как в доках решил проверить
PushNotification::app('appNameAndroid')
->to($deviceToken)
->send('Hello World, i`m a push message');
на что ответили ошибкой 401 Forbidden; Authentication Error Gcm.php
if ((bool) $this->response->getSuccessCount()) {
foreach ($tokensRange as $token) {
$pushedDevices->add($push->getDevices()->get($token));
}
}
но я так и не понял проблема в токене или в самом GCM. есть кто сталкивался с такой задачей и решил? помогите пжл
ну или как ты решил эту проблему ?
Ну как? разобрался? я просто не могу понять будет ли свой socialite работать с http://socialiteproviders.github.io/ параллельно ? так как во втором нет fb и твитера
Плз хелп у меня что то не получается как у чуваков со стэковерфоллоу http://stackoverflow.com/questions/1648 … 1#22055221
кто нибудь делал на подобие или у кого есть свой способ помогите
}%вместо %%e.preventDefault()%% достаточно вернуть из обработчика %%false%% - это обеспечит и %%preventDefault%% и %%stopPropagation%% причём кроссбраузерно, не только для современных браузеров. вторая проблема - при таком способе формирования payload'а запроса не искейпится содержимое полей. учитывая что в обработчике форма приходит в виде %%this%% достаточно в качестве %%data%% передать %%$(this).serialize()%% - это и проще и правильнее, а главное в форме присутствует и csrf-токен, который тоже будет передан. %%cache: false%% на post-запросе не нужен - посты не кэшируются. и можно использовать %%$.post%% вместо общего %%$.ajax%%.
%%(js)
$.post($(this).attr('action'), $(this).serialize(), function (responce) {
...
}, 'json');
return false;
%%как-то так
спасибо учту
решено!
if (msg ['msg'] == true){
sweetAlert("Good job!", "Ваша заявка отправлена!", "success");
}else {
sweetAlert("Oops...", "Вы ввели не всю информацию, вернитесь и заполните все поля!", "error");
}
Попробуйте так:
if (msg ){ sweetAlert("Good job!", "Ваша заявка отправлена!", "success"); }else { sweetAlert("Oops...", "Вы ввели не всю информацию, вернитесь и заполните все поля!", "error"); }
Если не поможет - то смотрите, что приходит в msg, вначале success-функции добавьте:
console.log(msg);
И посмотрите, что в консоли выведется.
возвращает false
я не пойму почему валидацию не проходит база пустая и все равно, может где ошибка есть я не вижу ?
вечно выдает что ошибка с js возвращает не msg == true
{{Form::open(array('id' => 'frm', 'method' => 'post' ))}}
<div class="form-group">
{{ Form::email('email', null, array('class' => 'form-control',"placeholder" => "Your E-mail")) }}
</div>
<div class="form-group">
<div>
{{ Form::password('password', array('class' => 'form-control', "placeholder" => "Password")) }}
<br />
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-block btn-warning btn-embossed">Sign Up</button>
</div>
{{Form::close()}}
$("document").ready(function(){
$("#frm").submit(function(e){
e.preventDefault();
var query = "email=" + $("input[name=email]").val() +
"&password=" + $("input[name=password]").val();
$.ajax({
type: "POST",
url : "http://localhost:8000/frontend/users/register",
data : query,
cache: false,
//dataType : "json",
success : function(msg){
if (msg == 'true'){
sweetAlert("Good job!", "Ваша заявка отправлена!", "success");
}else {
sweetAlert("Oops...", "Вы ввели не всю информацию, вернитесь и заполните все поля!", "error");
}
}
},"json");
});
});
public function postRegister() {
if(Request::ajax()){
$rules = User::$validation;
$validation = Validator::make(Input::all(), $rules);
if ($validation->fails()) {
return Response::json(array('msg'=> false,));
}
$user = new User();
$user->fill(Input::all());
$id = $user->register();
return Response::json(array('msg'=> true,));
}
}
в модели
public function register() {
$this->password = Hash::make($this->password);
$this->activationCode = $this->generateCode();
$this->save();
Log::info("User [{$this->email}] registered. Activation code: {$this->activationCode}");
$this->sendActivationMail();
return $this->id;
}
public function sendActivationMail() {
$activationUrl = action(
'UsersController@getActivate',
array(
'userId' => $this->id,
'activationCode' => $this->activationCode,
)
);
$that = $this;
Mail::send('emails/activation',
array('activationUrl' => $activationUrl),
function ($message) use($that) {
$message->to($that->email)->subject('Спасибо за регистрацию!');
}
);
}
}%method="post" на форме забыл?
разве не автоматом ?
Выходит ошибка что MethodNotAllowedHttpException
вот код
форма
{{Form::open(array('id'=>'frm'))}}
<label class="h6">Имя / Фамилия</label>
<input type="text" name="name" required="required" class="form-control">
<label class="h6">E-mail</label>
<input type="email" name="email" required="required" class="form-control">
<label class="h6">Сообщение</label>
<textarea rows="7" name="message" required="required" class="form-control"></textarea><br />
<button type="submit" class="btn btn-primary" ><span class="fui-mail"></span></button>
{{Form::close()}}
<script>
$("document").ready(function(){
$("#frm").submit(function(e){
e.preventDefault();
var name = $("input[name=name]").val();
var email = $("input[name=email]").val();
var message = $("textarea[name=message]").val();
var dataString = 'name='+name+'&email='+email+'&message'+message;
$.ajax({
type: "POST",
url : "http://example.com/contact",
data : dataString,
dataType : "json",
success : function(msg){
if (msg == 'ok'){
sweetAlert("Good job!", "Ваша заявка отправлена!", "success");
}else {
sweetAlert("Oops...", "Вы ввели не всю информацию, вернитесь и заполните все поля!", "error");
}
}
},"json");
});
});
</script>
Route::post('/contact', function(){
if (Request::ajax()){
$user = array(
'email' => Input::get('email')
);
$data = array(
'name' => Input::get('name'),
'email' => Input::get('email'),
'message_body' => Input::get('message')
);
$rules = array(
'name' => 'required|max:50',
'email' => 'required|email',
'message_body' => 'required|min:6',
);
$validation = Validator::make($data, $rules);
if ($validation->fails())
{
return Redirect::to('/about')->withErrors($validation)->withInput();
}
Mail::send('emails.contact', $data, function($message) use ($user) {
$message->to('test@example.com', 'RS Staff')->subject('Новое сообщение ');
});
return Response::json(array('msg' => 'ok'));
}
});
может где не так сделал по советуйте что делать и посмотрите со стороны виднее будет если где то что не так
nemocoder пишет:так же хочу добавить к проблеме установки laravel 4 на хостинг если у вас ошибка 500 и из логов ошибок есть Option MultiViews not allowed here
добавить вот так к примеру
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride Indexes Options=All,MultiViews
Order allow,deny
allow from all
</Directory>решение взял по этой ссылки
а в каком файле это добавлять?
в ссылке все есть
по-моему вы занимаетесь какой-то фигней
всё вообще не так делается<?php class XLSSeeder extends Seeder { public function run() { $xls = 'app/database/seeds/seeder.xlsx'; $book = Excel::load($xls, 'UTF-8')->all(); foreach($book as $sheet) { if ($sheet->getTitle() === 'categories') { Category::truncate(); foreach($sheet as $row) { $category = Category::create([ 'id' => $row->id, 'parent_id' => $row->parent_id, 'level' => $row->level, 'title' => $row->title, 'sef' => $row->sef, 'body' => $row->body, 'image' => $row->image, 'metatitle' => $row->metatitle, 'metakey' => $row->metakey, 'metadesc' => $row->metadesc, ]); } } if ($sheet->getTitle() === 'menu') { Menu::truncate(); foreach($sheet as $row) { $menu = Menu::create([ 'id' => $row->id, 'parent_id' => $row->parent_id, 'level' => $row->level, 'title' => $row->title, 'route' => $row->route, 'class' => $row->class, 'metatitle' => $row->metatitle, 'metakey' => $row->metakey, 'metadesc' => $row->metadesc, ]); } } } } }
почему это, мой метод фигня ? делай как можешь а если не получилось так это не у меня руки сам понимаешь
if (Input::hasFile('file')) {
$dir = '/uploads'.date('/Y/m/d/');
do {
$filename = str_random(30).'.jpg';
} while (File::exists(public_path().$dir.$filename));
Input::file('file')->move(public_path().$dir, $filename);
$profile->image = $dir.$filename;
$profile->save();
}
делал чисто для jpg но поставишь при валидации (mime) и тд сможешь сделать все, можешь имя сделать оригинальным именем и расширением